Does everyone remember the old spinning text with network activity from Rebol1 ?
Maxim
IIRC you can still do it in R2.
Rebolek
I have troubles using async mode on schemes. I have my awake handler and I return TRUE on 'read event, but the WAIT doesn't return and waits until timeout. Any ideas what am I doing wrong?
GrahamC
can you break it down into the smallest example? AFAIK, true at the end of the event loop should cause you to leave it
Rebolek
This should be it. It waits until timeout and then returns data:
send-redis-request: func [port] [ write port #{2A330D0A24330D0A5345540D0A24390D0A6173796E63746573740D0A24340D0A747275650D0A} ]
port/awake: func [event] [ ;print ["Awake-event:" event/type] switch/default event/type [ lookup [open event/port] connect [send-redis-request event/port] wrote [read event/port] read [ print ["Read" length? event/port/data "bytes"] read event/port ] close [return true] ] [ print ["Unexpected event:" event/type] close event/port return true ] false ; returned ] port ]
print "REDIS reading..." rp: read-redis tcp://192.168.211.10:6379 wait [rp 10] close rp print to-string rp/data
It's adapted from the HTTP example where it works fine, but with another scheme I can't get it to work.
GrahamC
Sorry, does the above work or not?
Rebolek
It sort of works. Request is send and response is read back but instead of returning immediately, it waits for timeout. The HTTP example from rebol.net wiki returns immediately.