Commit Graph

12 Commits

Author SHA1 Message Date
Tony Garnock-Jones 2a754624ef Remove exn-util.rkt, because since 6.3 racket/exn exists. 2016-03-03 17:31:53 -05:00
Tony Garnock-Jones 3c5a6f00ed Rename "matcher" to "trie". 2016-01-21 21:55:41 -05:00
Tony Garnock-Jones e1c5fd4ac1 Switch from timer-expired /messages/ to /assertions/ at ground level.
Previously, the timer driver caused the background thread to call
send-ground-message to indicate that a timer had expired. However,
this can lead to a race! In cases where a timer expires very soon, the
channel-put of the set-timer instruction leads shortly thereafter to a
send-ground-message which then races the establishment of the
metalevel-1 subscription to the timer-expired events that are coming
from the background thread.

The race cannot occur in the sequential implementation because the
network makes sure to enqueue the transition actions resulting from
the set-timer message delivery ahead of any enqueueing of the
timer-expired ground message, so that by the time the ground message
is processed, the relevant subscription always exists.

In a looser implementation, however, this level of synchronised
activity may not exist, and the ground message may overtake the
subscription establishment.

Therefore, I've changed the driver to instead use ground /assertions/
to signal expired timers. Upon processing of such an assertion, the
driver cleans it up. This is very similar to hardware interrupts,
where the driver has to "clear the interrupt" in order to let the
system continue properly.
2016-01-21 17:38:12 -05:00
Tony Garnock-Jones 506d74ed42 Support other kinds of actions than patches when first spawning a process 2015-12-03 12:56:52 -08:00
Tony Garnock-Jones 76eaa2fa39 Port websocket support from minimart 2015-06-06 17:15:43 -04:00
Tony Garnock-Jones 417c7728b7 Break dependency on web-server-lib 2015-05-23 11:41:43 -04:00
Tony Garnock-Jones dfad624028 Increase TCP listen connection backlog from 4 to 128, to avoid TCP timeouts when the queue builds up. 2015-03-18 19:00:43 -04:00
Tony Garnock-Jones fc1081c7da I had the advertise/observe pair the wrong way round for outbound connections. 2015-03-06 13:58:03 +00:00
Tony Garnock-Jones 96247daae3 TCP driver; simple TCP example; chat room TCP example. 2015-03-06 13:29:59 +00:00
Tony Garnock-Jones 98bfbef056 Much improved quit/transition protocol. 2015-03-06 11:21:50 +00:00
Tony Garnock-Jones 5d2ec58ef0 Demand-matcher; UDP driver; simple UDP example 2015-03-05 16:41:06 +00:00
Tony Garnock-Jones e731282ddd First running program; port some infrastructure from minimart 2015-03-05 14:54:12 +00:00