Mask all signals in GLib worker thread

Some code using GLib (gnome-keyring-daemon, for example) assumes that
they can catch signals by masking them out in the main thread and
calling sigwait() from a worker.

The problem is that our new worker thread catches the signals before
sigwait() has a chance and the default action occurs (typically
resulting in program termination).

If we mask all the signals in our worker, then this can't happen.
This commit is contained in:
Ryan Lortie
2011-10-14 13:02:58 -04:00
parent 1ed88f0615
commit 51773c6c64
2 changed files with 26 additions and 0 deletions

View File

@@ -467,6 +467,21 @@ Since: 2.14
<!-- ##### MACRO G_DEPRECATED ##### -->
<para>
</para>
<!-- ##### MACRO G_DEPRECATED_FOR ##### -->
<para>
</para>
@f:
<!-- ##### MACRO G_LIKELY ##### -->
<para>
Hints the compiler that the expression is likely to evaluate to a true