Stop checking for fork() across GMainContext
authorRyan Lortie <desrt@desrt.ca>
Fri, 14 Oct 2011 23:41:08 +0000 (19:41 -0400)
committerRyan Lortie <desrt@desrt.ca>
Sat, 15 Oct 2011 00:01:22 +0000 (20:01 -0400)
commit7ab25865f229ad8d98a067b590319bfdd988e50e
tree6a68627661686e9be9e166ba3ce54d05d1673473
parent51773c6c64431c03242a6f3d12d44f99282c815c
Stop checking for fork() across GMainContext

01ed78d525cf2f8769022e27cc2573ec7ba123b3 introduced assertion checks for
creating a main context, forking, and attempting to use the main context
from the child side of the fork.

Some code (such as gnome-keyring-daemon) daemonise after calling
GMainContext.  That's probably still mostly safe since we still only
have one side of the fork touching the context afterwards.

This use case is still troubling, however, since if any worker threads
have been created at the time of the fork(), we could end up in the
classic situation of leaving some mutexes in a locked state when the
other threads disappear from the copy of the image that the child gets.

This will require some deeper thinking...
glib/gmain.c