multithreading - Check if data available on input-port -


i have tcp-connection between server , client , i'm looking way poll input-port on server side. if there data available, should read , put list. tried putting inside thread, blocks until can read something, , not want. want thread run "in background". wondering if possible in racket.

i have following code:

(define in '()) (define out '()) (define data '()) (define listener (tcp-listen 8085))  (define (discover)     (define (loop)         (if (tcp-accept-ready? listener)             (begin (let-values (((pi po) (tcp-accept listener)))                      (set! in pi)                      (set! out po)                      (thread (read-thread pi)))                    (loop))             'done))   (loop))  (define (read-thread port)     (let ((d (read port)))         (set! data (cons d data)))     (sleep 2)     (read-thread port)) 

the thread procedure takes thunk run in new thread. code doing reading before second thread ever created (and should giving error thread expecting procedure`). want instead:

(thread (lambda () (read-thread pi))) 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -