X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=serialport.c;h=72010913ae4e7a2cc4772112afc857350e7a37f0;hb=d81a4dfdc6f9779c13c6dd10b342e9d4c5a7ff97;hp=eda2d19250fdcc7316b9f1f60ffa21ff4d37655f;hpb=78c3db9bfb86f854df2b3c36a35f29b476e6deee;p=libserialport.git diff --git a/serialport.c b/serialport.c index eda2d19..7201091 100644 --- a/serialport.c +++ b/serialport.c @@ -1448,6 +1448,7 @@ SP_API enum sp_return sp_wait(struct sp_event_set *event_set, RETURN_OK(); #else struct timeout timeout; + int poll_timeout; int result; struct pollfd *pollfds; unsigned int i; @@ -1478,7 +1479,11 @@ SP_API enum sp_return sp_wait(struct sp_event_set *event_set, break; } - result = poll(pollfds, event_set->count, timeout_remaining_ms(&timeout) || -1); + poll_timeout = (int) timeout_remaining_ms(&timeout); + if (poll_timeout == 0) + poll_timeout = -1; + + result = poll(pollfds, event_set->count, poll_timeout); timeout_update(&timeout);