Thread-safety changes to signal marshalling



I just committed¹ a fix to Glib that is supposed to make Glib gracefully handle signal invocation from foreign threads. The long story is at <https://bugzilla.gnome.org/show_bug.cgi?id=620099>, the short story is in the NEWS file:

When a signal handler is invoked from a foreign thread without associated Perl interpreter, hand the marshalling over to the main loop which in turn later wakes up the main thread and lets it handle the request. Since this approach is experimental, there is debug print for now whenever it is used:

  *** GPerl asked to invoke callback from a foreign thread;
      handing it over to the main loop

Please test this change extensively. The programs that are most likely affected are those using GStreamer, but maybe also those using gio.

¹ <http://git.gnome.org/browse/perl-Glib/commit/?id=6f1bc1a56e4c7c87d44caca1001cd50357f7a603>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]