Commit Graph

29 Commits

Author SHA1 Message Date
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