Skip to content
  • Colin Walters's avatar
    Merge waitpid() from g_spawn_sync into gmain() · ce002293
    Colin Walters authored
    This is preparatory work for a future commit which will add a
    "catchall" waitpid API.  If we don't synchronize here with the worker
    thread, race conditions are possible.
    
    This also ensures we have an error message if someone adds a child
    watch for a nonexistent pid, etc.  Previously, we'd simply keep
    calling waitpid() getting ECHILD, and ignoring it until the source was
    removed. Now, we g_warning() and fire the source.
    
    Thirdly, this ensures that the waitpid() call in gmain handles EINTR,
    like the g_spawn_sync() one did.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=687061
    ce002293