On 6/10/11 1:21 AM, Robert Clipsham wrote:
As far as I'm aware, you cannot avoid it, it's a hard coded limit set by the operating system. May I suggest using Fibers instead of threads? If your threads are short lived, their overhead is probably not worth it. You can also combine fibers with threads if you need to take advantage of multiple cores (use a couple of worker threads, with N fibers each).
The threads are only short lived during that test, they aren't in the real application (incidentally, it would typically be a single thread running for the whole application lifetime).
Also, the OS thread limit isn't a problem in my example, as no more than a couple of threads are running at the same time – the problem is just freeing the handle by doing pthread_detach for the finished threads.
By the way, trying to force a garbage collection as a last resort exposes a druntime bug on OS X: http://d.puremagic.com/issues/show_bug.cgi?id=6135.
David
