mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 01:58:54 +01:00 
			
		
		
		
	GDBusConnection: Fix race in /gdbus/connection/life-cycle
GDBusConnection sets the closed flag in the worker thread, then adds an idle callback (which refs the Connection) to signal this in the main thread. The tests session_bus_down doesn't spin the mainloop, so the "closed" signal will always fire if iterating the mainloop later (and drops the ref when doing so). But _is_closed can return TRUE even before signalling this, in which case the "closed" signal isn't fired and the ref isn't dropped, causing the test to fail. Instead simply always wait for the closed signal, which is a good thing to check anyway and ensures the ref is closed. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661896 Reviewed-by: Matthias Clasen <mclasen@redhat.com>
This commit is contained in:
		
				
					committed by
					
						
						Simon McVittie
					
				
			
			
				
	
			
			
			
						parent
						
							6d57a45234
						
					
				
				
					commit
					5043ca30ea
				
			@@ -264,7 +264,6 @@ test_connection_life_cycle (void)
 | 
			
		||||
  g_assert (!g_dbus_connection_is_closed (c));
 | 
			
		||||
  g_dbus_connection_set_exit_on_close (c, FALSE);
 | 
			
		||||
  session_bus_down ();
 | 
			
		||||
  if (!g_dbus_connection_is_closed (c))
 | 
			
		||||
  _g_assert_signal_received (c, "closed");
 | 
			
		||||
  g_assert (g_dbus_connection_is_closed (c));
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user