diff mbox series

[2/2] core: Removing unnecessary check for monitoring multiple lines.

Message ID 20200208100129.10657-1-dmlinuxnewbie@gmail.com
State New
Headers show
Series None | expand

Commit Message

Daniel Mor Feb. 8, 2020, 10:01 a.m. UTC
In case when needed to monitor multiple line`s on different chip`s
function gpiod_line_event_wait_bulk() blocking it, by checking if
the line`s in a bulk from same chip.
In current state the API forsing the user to wait for notification on multiple threads.

Signed-off-by: Daniel Mor <dmlinuxnewbie@gmail.com>
---
 lib/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bartosz Golaszewski Feb. 9, 2020, 11:27 a.m. UTC | #1
sob., 8 lut 2020 o 11:01 Daniel Mor <dmlinuxnewbie@gmail.com> napisaƂ(a):
>
> In case when needed to monitor multiple line`s on different chip`s
> function gpiod_line_event_wait_bulk() blocking it, by checking if
> the line`s in a bulk from same chip.
> In current state the API forsing the user to wait for notification on multiple threads.
>
> Signed-off-by: Daniel Mor <dmlinuxnewbie@gmail.com>
> ---
>  lib/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/core.c b/lib/core.c
> index ed63012..2a46074 100644
> --- a/lib/core.c
> +++ b/lib/core.c
> @@ -977,7 +977,7 @@ int gpiod_line_event_wait_bulk(struct gpiod_line_bulk *bulk,
>         struct gpiod_line *line;
>         int rv;
>
> -       if (!line_bulk_same_chip(bulk) || !line_bulk_all_requested(bulk))
> +       if (!line_bulk_all_requested(bulk))
>                 return -1;
>
>         memset(fds, 0, sizeof(fds));
> --
> 2.17.1
>

The subject tag suggests there's another patch in this series but I
never got anything and don't see anything on patchwork. For the
future: please also add [libgpiod] tag before [PATCH] to make it
easier to spot user-space patches on the list.

I specifically made this function only accept lines from a single chip
- this is the same for all gpiod_line_bulk operations. To do otherwise
would lead to redundant code as you would have to retrieve the chip
reference from the line every time there's a new event and compare it
to something to know which one this is. If you need to modify lines
from several chips - please just retrieve the associated file
descriptor and use poll() or select() and then you can easily map
descriptor numbers to specific lines.

Bartosz
diff mbox series

Patch

diff --git a/lib/core.c b/lib/core.c
index ed63012..2a46074 100644
--- a/lib/core.c
+++ b/lib/core.c
@@ -977,7 +977,7 @@  int gpiod_line_event_wait_bulk(struct gpiod_line_bulk *bulk,
 	struct gpiod_line *line;
 	int rv;
 
-	if (!line_bulk_same_chip(bulk) || !line_bulk_all_requested(bulk))
+	if (!line_bulk_all_requested(bulk))
 		return -1;
 
 	memset(fds, 0, sizeof(fds));