Re: [libgpiod][PATCH] bindings: python: change the interpretation of None in event wait

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Dienstag, 23. Mai 2023, 15:34:27 CEST schrieb Bartosz Golaszewski:
> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> 
> The docs don't mention it but currently passing None as the timeout to
> one of the event wait methods works like passing 0 to select() - the wait
> method returns immediately. Change it to a more standard behavior - None
> makes the method block indefinitely until an even becomes available for

Small typo: 'an event becomes'

Regards,
Alexander

> reading.
> 
> This is a slight change in the behavior but let's hope nobody complains
> as libgpiod v2 is still pretty recent and its adoption is (hopegully)
> not wide-spread yet.
> 
> Suggested-by: Nicolas Frattaroli <frattaroli.nicolas@xxxxxxxxx>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> ---
>  bindings/python/gpiod/chip.py         | 3 ++-
>  bindings/python/gpiod/internal.py     | 3 ---
>  bindings/python/gpiod/line_request.py | 3 ++-
>  3 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/bindings/python/gpiod/chip.py b/bindings/python/gpiod/chip.py
> index 97ff340..52d0757 100644
> --- a/bindings/python/gpiod/chip.py
> +++ b/bindings/python/gpiod/chip.py
> @@ -195,7 +195,8 @@ class Chip:
>          Args:
>            timeout:
>              Wait time limit represented as either a datetime.timedelta
> object -            or the number of seconds stored in a float.
> +            or the number of seconds stored in a float. If set to 0, the
> +            method returns immediately, if set to None it blocks
> indefinitely.
> 
>          Returns:
>            True if an info event is ready to be read from the chip, False if
> the diff --git a/bindings/python/gpiod/internal.py
> b/bindings/python/gpiod/internal.py index 37e8b62..7b4598c 100644
> --- a/bindings/python/gpiod/internal.py
> +++ b/bindings/python/gpiod/internal.py
> @@ -7,9 +7,6 @@ from typing import Optional, Union
> 
> 
>  def poll_fd(fd: int, timeout: Optional[Union[timedelta, float]] = None) ->
> bool: -    if timeout is None:
> -        timeout = 0.0
> -
>      if isinstance(timeout, timedelta):
>          sec = timeout.total_seconds()
>      else:
> diff --git a/bindings/python/gpiod/line_request.py
> b/bindings/python/gpiod/line_request.py index a0f97b7..090467c 100644
> --- a/bindings/python/gpiod/line_request.py
> +++ b/bindings/python/gpiod/line_request.py
> @@ -178,7 +178,8 @@ class LineRequest:
>          Args:
>            timeout:
>              Wait time limit expressed as either a datetime.timedelta object
> -            or the number of seconds stored in a float.
> +            or the number of seconds stored in a float. If set to 0, the
> +            method returns immediately, if set to None it blocks
> indefinitely.
> 
>          Returns:
>            True if events are ready to be read. False on timeout.


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/






[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux