Stefan Beller <sbeller@xxxxxxxxxx> writes: > On Fri, Oct 28, 2016 at 1:29 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: >> Johannes Sixt <j6t@xxxxxxxx> writes: >> >>> Another problem with the proposed patch is that there is no >>> declaration for attr_start() before the call in compat/mingw.c. We >>> would have to move the declaration of attr_start() to cache.h (for >>> example), because #including attr.h in compat/mingw.c is plainly >>> wrong. However, it would not be a major offense to #include attr.h in >>> common-main.c. But when we do that, we can certainly spare the few >>> cycles to call pthread_mutex_init. >> >> That sounds like a good argument to have it in common-main.c. > > If we're going that route, I would get rid of PTHREAD_MUTEX_INITILIZER > and call a pthread_mutex_init platform independently. Yup, but earlier j6t was trying hard not to penalize any single platform, and that would certainly penalize the ones with static initialization, so I was hoping to hear if there is a clever workaround to avoid that. >> Would it mean that the code that defines the mutex needs to have >> #ifdef that defines a no-op attr_start() and defines the mutex with >> PTHREAD_MUTEX_INITILIZER with #else that just defines the mutex >> without initializatin, with the real attr_start(), though?