diff options
author | John (J5) Palmieri <johnp@redhat.com> | 2006-09-06 22:00:07 +0000 |
---|---|---|
committer | John (J5) Palmieri <johnp@redhat.com> | 2006-09-06 22:00:07 +0000 |
commit | 1eae184450a585f10c8988613e0f7259e1d6066a (patch) | |
tree | 09449b526f57602ac92daf62e61172a274848bfb /test | |
parent | 61316dd897846c6ee18daccdddaf8a78650a1406 (diff) |
* doc/TODO:
- Remove pending call locking todo item
- dbus_connection_open now holds hard ref. Remove todo item
- do proper locking on _dbus_bus_check_connection_and_unref
and handle DBUS_BUS_STARTER. Remove todo item
- Warn on closing of a shared connection. Remove todo item
* bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
dbus/dbus-connection.c: Use the dbus_connection_close_internal
so we don't get the warning when closing shared connections
* test/test-service.c, test/test-shell-service.c: Applications
don't close shared connections themselves so we unref instead of
close
* test/test-utils.c (test_connection_shutdown): Close the connection
* dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
_dbus_bus_check_connection_and_unref_unlocked since we only call this
method on a locked connection.
Make sure we call _dbus_connection_unref_unlocked instead of
dbus_connection_unref also.
Handle DBUS_BUS_STARTER correctly
* dbus/dbus-connection.c (connection_record_shared_unlocked):
Mark as shared and hard ref the connection
(connection_forget_shared_unlocked): Remove the hard ref from the
connection
(_dbus_connection_close_internal_and_unlock): New internal function
which takes a locked connection and unlocks it after closing it
(_dbus_connection_close_internal): New internal function which acts
like the origonal dbus_connection_close method by grabbing a connection
lock and calling _dbus_connection_close_internal_and_unlock
(dbus_connection_close): Public close method, warns when the app
trys to close a shared connection
Diffstat (limited to 'test')
-rw-r--r-- | test/test-service.c | 4 | ||||
-rw-r--r-- | test/test-shell-service.c | 3 | ||||
-rw-r--r-- | test/test-utils.c | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/test/test-service.c b/test/test-service.c index 6a633b77..0dbece08 100644 --- a/test/test-service.c +++ b/test/test-service.c @@ -115,6 +115,7 @@ check_hello_from_self_reply (DBusPendingCall *pcall, dbus_message_unref (reply); dbus_message_unref (echo_message); dbus_pending_call_unref (pcall); + dbus_connection_unref (connection); } static DBusHandlerResult @@ -242,7 +243,7 @@ path_message_func (DBusConnection *connection, "org.freedesktop.TestSuite", "Exit")) { - dbus_connection_close (connection); + dbus_connection_unref (connection); quit (); return DBUS_HANDLER_RESULT_HANDLED; } @@ -319,7 +320,6 @@ filter_func (DBusConnection *connection, DBUS_INTERFACE_LOCAL, "Disconnected")) { - dbus_connection_close (connection); quit (); return DBUS_HANDLER_RESULT_HANDLED; } diff --git a/test/test-shell-service.c b/test/test-shell-service.c index 71b4baae..08ed2077 100644 --- a/test/test-shell-service.c +++ b/test/test-shell-service.c @@ -85,7 +85,7 @@ path_message_func (DBusConnection *connection, "org.freedesktop.TestSuite", "Exit")) { - dbus_connection_close (connection); + dbus_connection_unref (connection); quit (); return DBUS_HANDLER_RESULT_HANDLED; } @@ -109,7 +109,6 @@ filter_func (DBusConnection *connection, DBUS_INTERFACE_LOCAL, "Disconnected")) { - dbus_connection_close (connection); quit (); return DBUS_HANDLER_RESULT_HANDLED; } diff --git a/test/test-utils.c b/test/test-utils.c index 9665eda3..3577bf9c 100644 --- a/test/test-utils.c +++ b/test/test-utils.c @@ -171,6 +171,8 @@ void test_connection_shutdown (DBusLoop *loop, DBusConnection *connection) { + _dbus_connection_close_internal (connection); + if (!dbus_connection_set_watch_functions (connection, NULL, NULL, |