On Thu, 5 Nov 2009, Andrzej K. Haczewski wrote: > 2009/11/5 Nicolas Pitre <nico@xxxxxxxxxxx>: > > Careful. At the beginning of the function you'll find: > > > > if (delta_search_threads <= 1) { > > find_deltas(list, &list_size, window, depth, processed); > > return; > > } > > > > That is, if we have thread support compiled in but we're told to use > > only one thread, then the bulk of the work splitting is bypassed > > entirely. Inside find_deltas() there will still be pthread_mutex_lock() > > and pthread_mutex_unlock() calls even if no threads are spawned. > > Ah, I wasn't aware of that. Actually why would find_deltas lock if no > threads are used? Maybe, for non-threaded call to find_deltas, locking > could be factored out? It is already factored out when thread support is not enabled. When thread support is enabled but there is only one thread, there was no point duplicating the code just to have a path without any mutexes, especially on Linux where no performance difference could be measured. Nicolas