Simon McVittie 6f859fe21a gdbus-peer test: let GDBusServer start before notifying main thread
When running the nonce-tcp and tcp-anonymous tests in one run
of gdbus-peer, or running one of them twice via command-line options
"-p /gdbus/tcp-anonymous -p /gdbus/tcp-anonymous", the one run second
would sometimes fail to connect with ECONNRESET.

Adding more debug messages revealed that in the successful case,
g_main_loop_run() was executed in the server thread first:

 # tcp-anonymous: server thread: listening on tcp:host=localhost,port=53517
 # tcp-anonymous: server thread: starting server...
 # tcp-anonymous: server thread: creating main loop...
 # tcp-anonymous: server thread: running main loop...
 # tcp-anonymous: main thread: trying tcp:host=localhost,port=53517...
 # tcp-anonymous: main thread: waiting for server thread...

but in the failing case, the main thread attempted to connect
before the call to g_main_loop_run() in the server thread:

 # tcp-anonymous: server thread: listening on tcp:host=localhost,port=40659
 # tcp-anonymous: server thread: starting server...
 # tcp-anonymous: server thread: creating main loop...
 # tcp-anonymous: main thread: trying tcp:host=localhost,port=40659...
 # tcp-anonymous: server thread: running main loop...

(The log message "creating main loop" was immediately before
create_service_loop(), and "running main loop" was immediately
before g_main_loop_run().)

To ensure that the GDBusServer has a chance to start accepting
connections before the main thread tries to connect to it, do not
tell the main thread about the service_loop immediately, but instead
defer it to an idle.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=749079
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
2015-05-11 14:17:55 +01:00
..
2010-07-05 00:56:12 -04:00
2013-07-11 13:49:20 -04:00
2013-11-23 22:21:29 -05:00
2014-04-15 11:36:39 -04:00
2014-09-09 14:11:38 -04:00
2015-02-23 10:40:40 -05:00
2014-01-01 22:01:15 -05:00
2014-01-31 14:31:55 +01:00
2014-11-27 09:12:42 -05:00
2015-03-13 17:39:50 -04:00
2014-06-28 14:06:36 -04:00
2012-10-16 09:39:24 -04:00
2014-01-31 14:31:55 +01:00
2010-04-17 01:48:05 -04:00
2015-02-17 16:27:46 -05:00
2012-10-16 09:39:24 -04:00
2012-10-16 09:39:24 -04:00
2013-11-11 07:11:29 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2012-10-16 09:39:24 -04:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2013-09-23 16:31:40 -04:00
2014-01-13 16:12:31 -05:00
2014-06-05 08:04:47 -04:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-06-28 14:05:23 -04:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2012-10-16 09:39:24 -04:00
2013-03-13 09:41:09 -04:00
2013-06-02 20:02:06 -04:00
2012-10-16 09:39:24 -04:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2012-10-16 09:39:24 -04:00
2014-09-08 08:19:25 +02:00
2012-10-16 09:39:24 -04:00
2012-10-16 09:39:24 -04:00
2012-10-16 09:39:24 -04:00
2012-10-16 09:39:24 -04:00
2012-01-13 17:12:53 +01:00
2012-01-13 17:12:53 +01:00
2012-01-13 17:12:53 +01:00
2012-01-13 17:12:53 +01:00
2012-01-13 17:12:53 +01:00
2012-01-13 17:12:53 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2014-01-31 14:31:55 +01:00
2012-12-12 15:20:22 +01:00
2012-10-16 09:39:24 -04:00
2012-10-16 09:39:24 -04:00