[Openmcl-devel] ACCEPT-CONNECTION does not handle :WAIT as documented on windows

Gary Byers gb at clozure.com
Wed May 18 02:40:33 PDT 2011

On Windows, some socket-related functions return an unsigned
32-bit value, where the value #xfffffffff (4294967295) is used
to indicate that an error occurred.  On other platforms, the
returned value is a signed integer and negative values denote
errors.  We were checking to see if the C #_accept function returned
a negative value (the value can't be negative on Windows) and interpreting
#xffffffff as if it was a valid socket identifier.

I checked in a change to the trunk that seems to fix this; if it doesn't
obviously break anything, we'll propagate the change to the 1.6 branch
in a few days.

On Wed, 18 May 2011, Yakov Zaytsev wrote:

> Hello
> Following does not work. Help is appreciated!
> $ /cygdrive/c/ccl/wx86cl
> Welcome to Clozure Common Lisp Version 1.6-r14468M  (WindowsX8632)!
> ? (setq sock (ccl:make-socket :connect :passive :format :text
> :local-port 7070 :reuse-address t))
> ? (ccl:accept-connection sock :wait nil)
>> Error: value 4294967295 is not of the expected type (OR NULL FIXNUM).
>> While executing: CCL::INIT-STREAM-IOBLOCK, in process listener(1).
>> Type :POP to abort, :R for a list of available restarts.
>> Type :? for other options.
> 1 >
> All I want is to be able to check if connection if available to be
> accepted. This is essentia because I want to interleave TCP client
> handling and "normal" operation of program in one process.
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list