On Mon, Aug 22, 2016 at 08:59:44PM -0400, Ted Unangst wrote:

> Otto Moerbeek wrote:
> > 
> > After a forkl of a threaded program __isthreaded is reset, but
> > existing allocations are spread around the pools. But the new single
> > threaded child only looks in the first pool. I have to think how to
> > solve this.
> 
> Create a new flag, _malloc_threads. Init to 0.
> 
> Change all existing tests for __isthreaded in malloc.c to _malloc_threads.
> 
> Set _malloc_threads to 1 (or N) in malloc_init().
> 
> (Future direction may be to replace _MALLOC_MUTEXES with _malloc_threads and
> allow it to vary somewhat based on cpu count.)
> 
> Trying to reverse the process of going to thread mode is more trouble than
> it's work. I'd even argue there's no need to reset __isthreaded, but I don't
> want to get bogged down with other consequences.

Indeed, thats the solution I came up with as well. chrome, ff, gimp
and mysqld seem to be happy. Online now.

        -Otto

Reply via email to