It's returning 12, which apparently means "no memory left". This makes
even less sense, since the system has 1gb of RAM, and was _nowhere_ near
using it all. Any suggestions?

-DMZ

On Fri, 2006-01-27 at 10:19 -0500, Rich Kulawiec wrote:
> On Fri, Jan 27, 2006 at 08:06:59AM -0500, David Zakar wrote:
> > Is there a maximum number of threads I can spawn in a program using
> > pthread_create() in Linux? I've noticed that once I exceed 300 or so, it
> > appears to just refuse to create new threads.
> 
> Yes, there is.  IIRC, there are two limits:
> 
>       1. The resources available on the system (e.g. memory): you
>       can't instantiate another thread if there's nowhere to put it.
> 
>       2. PTHREAD_THREADS_MAX (or somesuch: I'm going from memory
>       so that string may have a typo or two in it), which defines
>       the maximum number of threads.  It's defined in...umm...
>       probably /usr/include/bits/local_lim.h and is likely set to
>       8192 or 16384 or something like that -- so you _probably_
>       shouldn't be bumping it at 300.
> 
> My recommendation is to check the return from pthread_create()
> and see what it's set to -- perhaps that'll shed some light on
> which limit you're bumping into.
> 
> -Rich
> 
> 

Reply via email to