From: Jonathan Nieder Date: Tue, 16 Apr 2013 01:45:04 GMT Subject: Re: [PATCH 2/3] run-command: factor out running_main_thread function Message-ID: <20130416014504.GD3262@elie.Belkin> In-Reply-To: <20130415230816.GB11267@sigill.intra.peff.net> Jeff King wrote: > --- a/run-command.c > +++ b/run-command.c > @@ -603,7 +603,7 @@ static NORETURN void die_async(const char *err, va_list params) > { > vreportf("fatal: ", err, params); > > - if (!pthread_equal(main_thread, pthread_self())) { > + if (!running_main_thread()) { > struct async *async = pthread_getspecific(async_key); > if (async->proc_in >= 0) > close(async->proc_in); > @@ -614,6 +614,19 @@ static NORETURN void die_async(const char *err, va_list params) > > exit(128); > } > + > +int running_main_thread(void) > +{ > + return pthread_equal(main_thread, pthread_self()); > +} Would it make sense to do something like return !main_thread_set || pthread_equal(...); in case someone tries to call this before the first start_async call?