From: Nikodemus Siivola Date: Tue, 9 Aug 2011 10:37:14 +0000 (+0300) Subject: sb-bsd-sockets: less SERVE-EVENT X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=905df5c4bcb138a4d0423fca82eefd19efe952e7;p=sbcl.git sb-bsd-sockets: less SERVE-EVENT Socket streams no longer participate in SERVE-EVENT by default. Adjust MAKE-SOCKET-STREAM docstring for clarity. --- diff --git a/NEWS b/NEWS index 783b9e9..428fca9 100644 --- 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 diff --git a/contrib/sb-bsd-sockets/sockets.lisp b/contrib/sb-bsd-sockets/sockets.lisp index 66f57a1..17f30b7 100644 --- a/contrib/sb-bsd-sockets/sockets.lisp +++ b/contrib/sb-bsd-sockets/sockets.lisp @@ -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