Hi Dave,
See #dataAvailable and #recieveAvailableData.
It's never good to call for data if you don't know you have any. Better to setup a wait for data until call instead.
All the best,
Ron Teitelbaum Head Of Engineering 3d Immersive Collaboration Consulting ron@3dicc.com Follow Me On Twitter: @RonTeitelbaum www.3dicc.com https://www.google.com/+3dicc
-----Original Message----- From: beginners-bounces@lists.squeakfoundation.org [mailto:beginners- bounces@lists.squeakfoundation.org] On Behalf Of dsl101 Sent: Thursday, January 09, 2014 10:16 AM To: beginners@lists.squeakfoundation.org Subject: [Newbies] Read a filestream (named pipe) with a timeout
I'm using Squeak 4.2 and working on the smalltalk end of a named pipe connection, which sends a message to the named pipe server with:
msg := 'Here''s Johnny!!!!'. pipe nextPutAll: msg; flush.
It should then receive an acknowledgement, which will be a 32-byte md5
hash of
the received message (which the smalltalk app can then verify). It's
possible the
named pipe server may have gone away or otherwise been unable to deal with the request, and so I'd like to set a timeout on reading the
acknowledgement.
I've tried using this:
ack := [ pipe next: 32 ] valueWithin: (Duration seconds: 3)
onTimeout: [
'timeout'. ].
and then made the pipe server pause artificially to test the code. But the smalltalk thread blocks on the read and doesn't carry on (even after the timeout), although if I then get the pipe server to send the correct
response
(after a 5 second delay, for example), the value of 'ack' is 'timeout'.
Obviously
the timeout did what it's supposed to do, but couldn't 'unblock' the
blocking
read on the pipe.
Is there a way to accomplish this even with a blocking FileStream read?
I'd rather
avoid a busy wait on there being 32 characters available if at all
possible.
Thanks,
Dave
-- View this message in context:
http://forum.world.st/Read-a-filestream-named-
pipe-with-a-timeout-tp4735456.html Sent from the Squeak - Beginners mailing list archive at Nabble.com. _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners