On Apr 10, 2020, at 1:59 PM, Jörg F. Wittenberger <Joerg.Wittenberger@softeyes.net> wrote:
Background:
Since when I'm using this ##open-predefined and have on my list to ask why this seems not to integrate into gambit's threading as good as I had hoped for.
Nevertheless Marcs suggestion to use open-tcp-server does not work for me. I really need a unix domain socket. Actually an abstract socket on Linux. No way around. :-/
But I'd like it to block the calling thread on input. Which did not work out for me. (There is lambdanative and Android in the mix too, but my current _guess_ is that neither is to blame here.)
On POSIX systems, you can use ##open-predefined to create a port from a file descriptor. Then, when you want to wait for input to be available you can call ##wait-input-port with that port. This is the definition in lib/_io.scm: (define-prim (##wait-input-port port) ;; The thread will wait until there is data available to read on the ;; port's device or the port's timeout is reached. The value #f is ;; returned when the timeout is reached. The value #t is returned ;; when there is data available to read on the port's device or the ;; thread was interrupted (for example with thread-interrupt!). …) This is fully integrated with the thread system, so it only blocks the calling thread. Note also that you can use input-port-timeout-set! if you want to block for a limited time. Marc