mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Optimization of socket events handling of dbus.
Reduces calls to locate the file descriptor structure. Should lower CPU usage when monitoring dbus watches.
This commit is contained in:
committed by
Simon Kelley
parent
33635d8564
commit
bcb46809dc
17
src/dbus.c
17
src/dbus.c
@@ -958,14 +958,14 @@ void set_dbus_listeners(void)
|
|||||||
{
|
{
|
||||||
unsigned int flags = dbus_watch_get_flags(w->watch);
|
unsigned int flags = dbus_watch_get_flags(w->watch);
|
||||||
int fd = dbus_watch_get_unix_fd(w->watch);
|
int fd = dbus_watch_get_unix_fd(w->watch);
|
||||||
|
int poll_flags = POLLERR;
|
||||||
|
|
||||||
if (flags & DBUS_WATCH_READABLE)
|
if (flags & DBUS_WATCH_READABLE)
|
||||||
poll_listen(fd, POLLIN);
|
poll_flags |= POLLIN;
|
||||||
|
|
||||||
if (flags & DBUS_WATCH_WRITABLE)
|
if (flags & DBUS_WATCH_WRITABLE)
|
||||||
poll_listen(fd, POLLOUT);
|
poll_flags |= POLLOUT;
|
||||||
|
|
||||||
poll_listen(fd, POLLERR);
|
poll_listen(fd, poll_flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -979,14 +979,13 @@ static int check_dbus_watches()
|
|||||||
{
|
{
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
int fd = dbus_watch_get_unix_fd(w->watch);
|
int fd = dbus_watch_get_unix_fd(w->watch);
|
||||||
|
int poll_flags = poll_check(fd, POLLIN|POLLOUT|POLLERR);
|
||||||
|
|
||||||
if (poll_check(fd, POLLIN))
|
if ((poll_flags & POLLIN) != 0)
|
||||||
flags |= DBUS_WATCH_READABLE;
|
flags |= DBUS_WATCH_READABLE;
|
||||||
|
if ((poll_flags & POLLOUT) != 0)
|
||||||
if (poll_check(fd, POLLOUT))
|
|
||||||
flags |= DBUS_WATCH_WRITABLE;
|
flags |= DBUS_WATCH_WRITABLE;
|
||||||
|
if ((poll_flags & POLLERR) != 0)
|
||||||
if (poll_check(fd, POLLERR))
|
|
||||||
flags |= DBUS_WATCH_ERROR;
|
flags |= DBUS_WATCH_ERROR;
|
||||||
|
|
||||||
if (flags != 0)
|
if (flags != 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user