hansmu at xs4all
Aug 11, 2012, 2:24 AM
Post #3 of 4
On 11/08/12 09:07:51, pozz wrote:
Re: [Newbie] How to wait for asyncronous input
[In reply to]
> Il 11/08/2012 01:12, Dennis Lee Bieber ha scritto:
>> What you apparently missed is that serial.read() BLOCKs until data
>> is available (unless the port was opened with a read timeout set).
>> serial.read() may, there for, be using select() behind the scenes.
> Hmm..., so I could open the serial port with timeout=0 so the read(),
> that runs in a different thread, would block forever, so putting the
> thread in a sleep state until some bytes arrive.
> When the main thread wants to close the serial port, the receiving
> thread can be killed
How would you do that?
IFAIK, there is no way in Python to kill a thread.
The usual work-around is to have a global flag that you'd set
to True when the main thread wants to close the port. The read
would have a timeout of 1 second of so, so that the reading
thread is woken up every second, so it can check that flag and
wind up when the flag is set.
Hope this helps,