summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2006-09-06 22:00:07 +0000
committerJohn (J5) Palmieri <johnp@redhat.com>2006-09-06 22:00:07 +0000
commit1eae184450a585f10c8988613e0f7259e1d6066a (patch)
tree09449b526f57602ac92daf62e61172a274848bfb /test
parent61316dd897846c6ee18daccdddaf8a78650a1406 (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.c4
-rw-r--r--test/test-shell-service.c3
-rw-r--r--test/test-utils.c2
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,