summaryrefslogtreecommitdiff
path: root/src/userdb
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-06-10 11:43:40 +0200
committerDaan De Meyer <daan.j.demeyer@gmail.com>2020-06-10 20:06:10 +0200
commit0f2d351f790516bc3f1158d964c5f83f339addb2 (patch)
treef9df08ab66c5c7be26c92e1767d39835cc9f472c /src/userdb
parent24bd74ae03efc98272236bd0a98a1d7d090d540c (diff)
downloadsystemd-0f2d351f790516bc3f1158d964c5f83f339addb2.tar.gz
tree-wide: port to fd_wait_for_event()
Prompted by the discussion on #16110, let's migrate more code to fd_wait_for_event(). This only leaves 7 places where we call into poll()/poll() directly in our entire codebase. (one of which is fd_wait_for_event() itself)
Diffstat (limited to 'src/userdb')
-rw-r--r--src/userdb/userwork.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/userdb/userwork.c b/src/userdb/userwork.c
index 4a8c98384d..732063f6c7 100644
--- a/src/userdb/userwork.c
+++ b/src/userdb/userwork.c
@@ -9,6 +9,7 @@
#include "fd-util.h"
#include "group-record-nss.h"
#include "group-record.h"
+#include "io-util.h"
#include "main-func.h"
#include "process-util.h"
#include "strv.h"
@@ -747,20 +748,14 @@ static int run(int argc, char *argv[]) {
return log_error_errno(fd, "Failed to accept() from listening socket: %m");
if (now(CLOCK_MONOTONIC) <= usec_add(n, PRESSURE_SLEEP_TIME_USEC)) {
- struct pollfd pfd = {
- .fd = listen_fd,
- .events = POLLIN,
- };
-
/* We only slept a very short time? If so, let's see if there are more sockets
* pending, and if so, let's ask our parent for more workers */
- if (poll(&pfd, 1, 0) < 0)
- return log_error_errno(errno, "Failed to test for POLLIN on listening socket: %m");
- if (FLAGS_SET(pfd.revents, POLLNVAL))
- return log_error_errno(SYNTHETIC_ERRNO(EBADF), "Listening socket dead?");
+ r = fd_wait_for_event(listen_fd, POLLIN, 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to test for POLLIN on listening socket: %m");
- if (FLAGS_SET(pfd.revents, POLLIN)) {
+ if (FLAGS_SET(r, POLLIN)) {
pid_t parent;
parent = getppid();