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]

 



On Tue, May 23, 2023 at 3:34 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote:
>
> 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
> 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>

Cr*p, it was supposed to be Kent who suggested it and Nicolas who
Reported it. I can change it when applying if the patch is fine.

Bart

> 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.
> --
> 2.39.2
>




[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