Commit Graph

42 Commits

Author SHA1 Message Date
sperber 35f1ddd533 Split scsh code into lots of modules.
Note that this change doesn't represent any sort of design suggestion
or decision:  It merely represents an attempt to codify the
dependencies between the parts of the code base.  There's still lots
of work to be done to actually make user-accessible modules.
2003-04-28 08:33:46 +00:00
mainzelm cc3f5b07bc Fixed typo in error message. 2003-03-03 09:43:17 +00:00
sperber 00e8147657 I did it again:
only multiply timeout by 1000 if it's a number.
2003-01-14 13:21:31 +00:00
sperber 32953f94c0 It had to happen: the first post-0.6.3 bug fix.
The SELECT* operations take a timeout argument, specified to be in
seconds.  Instead, they took milliseconds.  Fix this.
2003-01-13 16:52:26 +00:00
mainzelm 7fb1d585b2 Set bufpol/none for current-input-port. 2003-01-07 16:01:14 +00:00
mainzelm 2a352215df Clarifications and fixes for set-port-buffering. 2003-01-07 13:35:54 +00:00
mainzelm e47611a0ae + Check arguments of select-ports/port-channels
+ Fix typo in really-select-port-channels
2002-12-06 12:53:55 +00:00
sperber 923ada9986 Added SELECT-PORT-CHANNELS. 2002-11-28 14:31:57 +00:00
sperber b01518b4d9 Rename WAIT-PORTS to SELECT-PORTS. 2002-11-28 14:15:34 +00:00
sperber a6ec3b5bb5 Add WAIT-PORTS. 2002-11-28 10:42:09 +00:00
mainzelm c3d776a279 Removed superfluous saving of s48 ports. They are no longer imported anyway. 2002-11-27 07:37:23 +00:00
sperber 883117ae06 Change SELECT! in the same way as SELECT: only ask the buffers of
ports that were passed in, not those of raw file descriptors.
2002-11-12 14:26:02 +00:00
sperber a206e4f70a Change the semantics of select so that it doesn't check the underlying
port buffer for fdes arguments.
2002-11-12 13:13:27 +00:00
sperber d0977ea4d4 Revamped the SELECT implementation to properly distinguish between
input and output port.  Also, SELECT and SELECT! are no longer
squashed into one silly procedure.
2002-10-30 12:00:15 +00:00
mainzelm 5b001c5720 Convert optional timeout argument before calling wait-for-channels. 2002-09-17 21:24:04 +00:00
sperber 33c14d7901 First stab at implementing SELECT/SELECT!:
- extend the VM interrupts to distinguish between read and write
  events
- add new ADD-PENDING-CHANNEL instruction to the VM
- add WAIT-FOR-CHANNELS procedure to the run-time system
- implement SELECT and SELECT! on top of that in newports.scm

This runs some basic tests, but in general should be considered
largely untested.

Moreover, SELECT/SELECT! never detect any exceptional conditions---the
returned vectors are always empty.  This is because the VM doesn't
really track those, and it's unclear whether it would be worth the
effort.
2002-08-20 14:03:01 +00:00
sperber 09db2fed71 Remove a bunch of crud from utilities.scm as well as the dependencies
upon that crud.
2002-08-14 14:45:33 +00:00
mainzelm 4e5b87209d Added ignore-port-locks? flag to output-port-forcers and use it in
flush-all-ports-no-threads.
2002-06-26 11:25:33 +00:00
mainzelm 021cd1efc1 + Let WITH-HANDLER take care of the resource lock.
+ Removed some duplicate alignments of process resources and moved
other closer the the actual system call
2002-05-15 17:05:02 +00:00
sperber a7517a3f05 Add record discloser for FDPORT-DATA. 2002-02-26 14:40:59 +00:00
mainzelm 45305e7555 Set-cloexec to #t for unrevealed ports. 2002-02-26 08:42:56 +00:00
sperber 380fee6612 Make FLUSH-ALL-PORTS blocking so FORK will do something more sensible.
Previously,

(begin
  (display "ha!") (newline)
  (fork (lambda ()
	  'foo)))

would print "ha!" twice because FLUSH-ALL-PORTS would not finish
before the actual FORK.
2002-02-25 20:29:15 +00:00
mainzelm 4efe1a4cd8 + Use S48's nonblocking facility to flush the ports
+ Deleted bogus select implementation
2002-02-21 06:55:37 +00:00
mainzelm 36c5c82ec3 Added forgotten with-error-output-port stuff. 2002-02-14 13:30:53 +00:00
mainzelm 5aeb88d72e Derelease bufpol/line 2002-01-03 10:23:19 +00:00
mainzelm 2fa5e3f693 Flush only the open ports. 2001-12-07 09:59:13 +00:00
mainzelm abf7c53cc5 Added channel->port. 2001-11-27 11:08:30 +00:00
mainzelm b5190d9c71 Avoid duplicate closing of fds that correspond to ports. 2001-10-03 17:09:15 +00:00
mainzelm c47a141356 Let current-noise-port default to current-error port.
You won't get warnings from the type-checker or the modul system otherwise...
2001-09-12 15:11:42 +00:00
mainzelm 006c551429 + Decigged syscalls, sleep
+ Modified operations that work on file descriptors to allocate appropriate
  buffered ports.
2001-09-07 16:05:31 +00:00
mainzelm 75fa4c1852 With-umask-align for the rest of the syscalls. 2001-07-10 14:52:57 +00:00
mainzelm 4351c22d9f + Added a simple version of weak-tables. Only tail weak for now.
+ Replaced forgotten vector-ref in newports.scm
2001-07-07 19:29:29 +00:00
mainzelm 921ecb9320 Use a weak integer-table to store the fdports dropping the limit on
the number of ports (fixes #433867).
2001-06-21 08:30:51 +00:00
mainzelm 384c28fab4 Hand out the port and not just port-data to the handler. 2001-04-09 07:55:50 +00:00
mainzelm 5b8818ffef Fixed 2 typos 2001-03-25 17:14:32 +00:00
mainzelm 9b4bb8a19d Adapted some of Richard's changes for char-ready? and output-port-ready?. 2001-03-23 10:59:07 +00:00
marting ea5725436e Added several cwd-aligns. with-env usees with-lock. Some corrections
to getenv.
2000-06-28 10:27:34 +00:00
marting 68138a2b58 removed bufpol/line for input, replaced code-vector by byte-vector 1999-11-02 22:41:05 +00:00
marting 4ca964b9ea added set-port-buffering. Supports gentle buffer draining and a slightly limited bufpol/line. Code looks quite ugly, but I think that's inherent... 1999-10-22 21:35:54 +00:00
marting 734daac16f Added fake set-port-buffering which produces a warning
Added error-output-port, but not yet as deprecated-proc
set $current-noise-port to null-output
%move-fdport now returns #f on success, just like 0.5.1
1999-10-08 16:43:39 +00:00
marting 26447c1d1a added channel-cell-ref to newports for the changed design in rts/channel-port.s, vm starts from dumped image now 1999-09-24 23:52:32 +00:00
marting 09136048ae Added files from david fishers home (~dfisher/scsh-0.5.1).
Be warned: the scsh-version he started from was neither 0.5.1 nor
0.5.2, but something in between !
1999-09-14 13:32:05 +00:00