Add with-actor-nonblocking-ports and related tooling.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 31 Jul 2017 21:14:16 +0000 (16:14 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 3 Aug 2017 20:50:18 +0000 (15:50 -0500)
commit1e636b5da1e6c25ba366b475f939cd4899770fef
treeb4f25447b8db1470a91cd9b921ff161167ce7340
parent95d529296ce772eeb1beb269e42d5fc63ba0bb50
Add with-actor-nonblocking-ports and related tooling.

This permits actors to not block their handling of correspondence on
I/O by handling the suspendable-ports functionality themselves rather
than through the normal fibers route.  This is useful for actors that
might be needing to exclusively control a port

* 8sync/actors.scm (<-wait): Add '<-wait symbol to arguments of
aborting to the prompt to distinguish it from the 'run-me action.
(actor-main-loop): Support handling suspendable ports on actor level
to support correspondence during I/O.
(%suspend-io-to-actor, suspend-read-to-actor, suspend-write-to-actor)
(with-actor-nonblocking-ports, actor-spawn-fiber)
(*resume-io-channel*): New variables.
8sync/actors.scm