[NPTH] npth and fork

NIIBE Yutaka gniibe at fsij.org
Tue Oct 4 02:49:11 CEST 2016

On 10/03/2016 12:44 PM, NIIBE Yutaka wrote:
> On 10/03/2016 10:13 AM, NIIBE Yutaka wrote:
>> The specific use case of fork to daemonize a program should be done
>> _before_ calling npth_init, ideally.
>> I'm going to examine code of gpg-agent and scdaemon if fix is easy.
> Here is the change.  We also have dirmngr.
> This change may be fragile.  No call/access should be done before
					    of npth_*
> npth_init and I tried to do so, but possibly, I missed.

For gpg-agent, I found npth_* calls through assuan_connect, and fixed
by deferring call of assuan_set_system_hooks.

Also for gpg-agent, I found gnupg_sleep calls npth_*.  It is fixed by
introducing thread_init_once.

Then, I pushed the change to master.

Now, I would like to change nPth for macOS.  Currently, it uses named
semaphore detecting the failure of sem_init at runtime.  I think
that use of unnamed semaphore of Grand Central Dispatch is better.

More information about the Gnupg-devel mailing list