(Disclaimer: I only briefly skimmed the PR, so I might got things wrong.)

Some thoughts:
- I would not impose on applications should handle signals. This could
  be a mayor annoyance, especially if applications needs being changed of that
  (this refering to the docs about signalfd etc.)

- A question: does log4cxx use signals of its own?
  If not, I would use the approach to block all signals before pthread_create()
  and then restore them afterwards.

  In one of my $DAYJOB projects I'm doing something along that to archieve that
  (typed out of memory)

  sigset_t allset, oldset;
  sigfillset(&newset);
  pthread_sigmask(SIG_BLOCK, &allset, &oldset);
  pthread_create(...);
  pthread_sigmask(SIG_SET,&oldset);



(- Another maybe unrelated thought (people were biten by this in log4cpp --
https://github.com/log4cplus/log4cplus/issues/466):
  After threads have been created, it is not safe anymore to fork() without
exec().
  This might be a mayjor problem it threads spawn automatically, but I guess in
log4cpp they are only
  spawned when using the AsyncAppender, so it should be fine.)

-- 
tobi

Reply via email to