linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [libgpiod] Python bindings don't allow to wait on events indefinitely
@ 2023-05-11 20:28 Nicolas Frattaroli
  2023-05-19  5:17 ` Kent Gibson
  0 siblings, 1 reply; 8+ messages in thread
From: Nicolas Frattaroli @ 2023-05-11 20:28 UTC (permalink / raw)
  To: linux-gpio

Hello,

in libgpiod 1.6.x, Line.event_wait's codepath had no path where ts
as passed to ppoll could ever be NULL. This means waiting indefinitely
was impossible.

I thought hey, maybe the new Python bindings in libgpiod 2.x fixed this,
but no, it has made it worse by explicitly setting timeout to 0 seconds
if it's None[1]. Obviously, this behaviour can't be changed now, because
people depend on this API to return immediately now with None as the
parameter, and changing it to wait indefinitely would no doubt break
actual programs.

So I'm left wondering if there's a particular reason users of these
bindings shouldn't wait on events indefinitely or if that same mistake
was just made twice in a row.

Is there some way the API could be enhanced to support waiting for
events indefinitely without having to slap a While True with
an arbitrarily high timeout around every single invocation?

Regards,
Nicolas Frattaroli

[1]: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/bindings/python/gpiod/internal.py#n11



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-05-23 13:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-11 20:28 [libgpiod] Python bindings don't allow to wait on events indefinitely Nicolas Frattaroli
2023-05-19  5:17 ` Kent Gibson
2023-05-19 14:32   ` Nicolas Frattaroli
2023-05-19 14:56     ` Kent Gibson
2023-05-23 10:03       ` Bartosz Golaszewski
2023-05-23 10:15         ` Kent Gibson
2023-05-23 12:31           ` Bartosz Golaszewski
2023-05-23 13:20             ` Kent Gibson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).