sb-bsd-sockets: less SERVE-EVENT
authorNikodemus Siivola <nikodemus@sb-studio.net>
Tue, 9 Aug 2011 10:37:14 +0000 (13:37 +0300)
committerNikodemus Siivola <nikodemus@sb-studio.net>
Tue, 9 Aug 2011 10:37:14 +0000 (13:37 +0300)
  Socket streams no longer participate in SERVE-EVENT by default.

  Adjust MAKE-SOCKET-STREAM docstring for clarity.

NEWS
contrib/sb-bsd-sockets/sockets.lisp

diff --git a/NEWS b/NEWS
index 783b9e9..428fca9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
 changes relative to sbcl-1.0.50:
+  * minor incompatible change: SB-BSD-SOCKET socket streams no longer
+    participate in SERVE-EVENT by default: pass :SERVE-EVENTS T to
+    MAKE-SOCKET-STREAM if using SERVE-EVENT.
   * enhancement: added support for socket keepalive timeout intervals
     and probe counts on Linux.
   * enhancement: building 32-bit SBCL on Linux/x86-64 now works without a
index 66f57a1..17f30b7 100644 (file)
@@ -384,21 +384,32 @@ for the stream."))
                                (external-format :default)
                                timeout
                                auto-close
-                               (serve-events t))
+                               serve-events)
   "Default method for SOCKET objects.
 
-An ELEMENT-TYPE of :DEFAULT will construct a bivalent stream, capable of both
-binary and character IO. Acceptable values for BUFFERING are :FULL, :LINE
-and :NONE. Streams will have no TIMEOUT by default. If AUTO-CLOSE is true, the
-underlying OS socket is automatically closed after the stream and the socket
-have been garbage collected. If SERVE-EVENTS is true, blocking IO on the
-socket will dispatch to the recursive event loop -- the default is currently
-true, but this liable to change.
-
-The stream for SOCKET will be cached, and a second invocation of this method
-will return the same stream. This may lead to oddities if this function is
-invoked with inconsistent arguments \(e.g., one might request an input stream
-and get an output stream in response\)."
+ELEMENT-TYPE defaults to CHARACTER, to construct a bivalent stream,
+capable of both binary and character IO use :DEFAULT.
+
+Acceptable values for BUFFERING are :FULL, :LINE and :NONE, default
+is :FULL, ie. output is buffered till it is explicitly flushed using
+CLOSE or FINISH-OUTPUT. (FORCE-OUTPUT forces some output to be
+flushed: to ensure all buffered output is flused use FINISH-OUTPUT.)
+
+Streams have no TIMEOUT by default. If one is provided, it is the
+number of seconds the system will at most wait for input to appear on
+the socket stream when trying to read from it.
+
+If AUTO-CLOSE is true, the underlying OS socket is automatically
+closed after the stream and the socket have been garbage collected.
+Default is false.
+
+If SERVE-EVENTS is true, blocking IO on the socket will dispatch to
+the recursive event loop. Default is false.
+
+The stream for SOCKET will be cached, and a second invocation of this
+method will return the same stream. This may lead to oddities if this
+function is invoked with inconsistent arguments \(e.g., one might
+request an input stream and get an output stream in response\)."
   (let ((stream
          (and (slot-boundp socket 'stream) (slot-value socket 'stream))))
     (unless stream