diff options
author | Colin Walters <walters@verbum.org> | 2009-07-10 21:33:02 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2009-07-13 13:07:12 -0400 |
commit | 0e36cdd54964c4012acec2bb8e598b85e82d2846 (patch) | |
tree | 7e9dd7470edac5ecccdf69bc3c5cb8f3cb425a6e /dbus/dbus-watch.c | |
parent | 6b163e95e7a2318a98c16c0d0944337e38e62efa (diff) |
Bug 896 - Avoid race conditions reading message from exited process
Patch based on extensive work from Michael Meeks <michael.meeks@novell.com>,
thanks to Dafydd Harries <dafydd.harries@collabora.co.uk>,
Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> and others.
The basic idea with this bug is that we effectively ignore errors
on write. Only when we're done reading from a connection do we
close down a connection. This avoids a race condition where
if a process (such as dbus-send) exited while we still had
data to read in the buffer, we'd miss that data.
Diffstat (limited to 'dbus/dbus-watch.c')
-rw-r--r-- | dbus/dbus-watch.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/dbus/dbus-watch.c b/dbus/dbus-watch.c index 7ef27bf0..bca699fd 100644 --- a/dbus/dbus-watch.c +++ b/dbus/dbus-watch.c @@ -51,6 +51,12 @@ struct DBusWatch unsigned int enabled : 1; /**< Whether it's enabled. */ }; +dbus_bool_t +_dbus_watch_get_enabled (DBusWatch *watch) +{ + return watch->enabled; +} + /** * Creates a new DBusWatch. Used to add a file descriptor to be polled * by a main loop. |