1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00
guile/module/system/repl
Mark H Weaver 5ecc58113a REPL Server: Fix 'stop-server-and-clients!'.
* module/system/repl/server.scm: Import (ice-9 match) and (srfi srfi-1).
  (*open-sockets*): Add comment.  This is now a list of pairs with a
  'force-close' procedure in the cdr.
  (close-socket!): Add comment noting that it is unsafe to call this
  from another thread.
  (add-open-socket!): Add 'force-close' argument, and put it in the cdr
  of the '*open-sockets*' entry.
  (stop-server-and-clients!): Use 'match'.  Remove the first element
  from *open-sockets* immediately.  Call the 'force-close' procedure
  instead of 'close-socket!'.
  (errs-to-retry): New variable.
  (run-server): Add a pipe, used in the 'force-close' procedure to
  cleanly shut down the server.  Put the server socket into non-blocking
  mode.  Use 'select' to monitor both the server socket and the pipe.
  Don't call 'add-open-socket!' on the client-socket.  Close the pipe
  and the server socket cleanly when we're asked to shut down.
  (serve-client): Call 'add-open-socket!' with a 'force-close' procedure
  that cancels the thread.  Set the thread cleanup handler to call
  'close-socket!', instead of calling it in the main body.

* doc/ref/api-evaluation.texi (REPL Servers): Add a caveat to the manual
  entry for 'stop-servers-and-clients!'.
2014-02-12 11:21:46 -05:00
..
command.scm ,option evaluates its right-hand-side 2013-03-07 11:29:01 +01:00
common.scm Bump user-visible copyright years to 2014. 2014-01-12 04:16:39 -05:00
debug.scm allow ,option on-error report instead of debug 2011-03-17 12:39:59 +01:00
describe.scm Use 'substring' instead of obsoleted 'make-shared-substring' 2011-02-02 05:45:37 -08:00
error-handling.scm Fix a couple of warnings. 2012-01-26 00:37:23 +01:00
repl.scm Consume a peeked EOF at the REPL. 2013-04-08 08:44:02 -04:00
server.scm REPL Server: Fix 'stop-server-and-clients!'. 2014-02-12 11:21:46 -05:00