Hi !
I'm having some trouble with simple sockets operations, and I'm not sure whether this is a bug, or whether I definitely misunderstood the documentation.
Here is a sample code:
;; Create a server (define node-socket (open-tcp-server (list port-number: 8284 eol-encoding: 'cr-lf)))
;; Set it non blocking (input-port-timeout-set! node-socket 0)
;; read once. Should return EOF because no one tried to connect to the ;; server (define c (read node-socket))
;; returns #t (eof-object? c)
;; Drink a coffee and read again. ;; It should return eof again for no one is connected (define d (read node-socket))
*** ERROR IN ##thread-deadlock-action! -- Deadlock detected
Hum... Deadlock ? Should I do something specific after "failing" to read the socket to let some other expression to read it again ? Or is it a bug^Wundocumented feature in the non-blocking ports routines ?
This happens as well on beta 22 as on beta 17.
Does it happen at yours too on a mac/windows ? Do you use non blocking IO a different manner, and that works ?
Regards,
Adrien