On Tue, Oct 23, 2018 at 03:13:06PM -0400, Ben Peart wrote: > At one point I also had the additional #ifndef NO_PTHREADS lines but it was > starting to get messy with the threaded vs non-threaded code paths so I > removed them. I'm fine with which ever people find more readable. > > It does make me wonder if there are still platforms taking new build of git > that don't support threads. Do we still need to write/test/debug/read > through the single threaded code paths? I think the classic offenders here were old Unix systems like AIX, etc. I've no idea what the current state is on those platforms. I would love it if we could drop NO_PTHREADS. There's a lot of gnarly code there, and I strongly suspect a lot of bugs lurk in the non-threaded halves (e.g., especially around bits like "struct async" which is "maybe a thread, and maybe a fork" depending on your system, which introduces all kinds of subtle process-state dependencies). But I'm not really sure how to find out aside from adding a deprecation warning and seeing if anybody screams. See also this RFC from Duy, which might at least make the code itself a little easier to follow: https://public-inbox.org/git/20181018180522.17642-1-pclouds@xxxxxxxxx/ -Peff