There's more than one way to do things | |
PerlMonks |
using many threads and conserving stack sizeby danmcb (Monk) |
on Nov 12, 2008 at 13:00 UTC ( [id://723138]=perlquestion: print w/replies, xml ) | Need Help?? |
danmcb has asked for the wisdom of the Perl Monks concerning the following question: I have a test script which I am using to exercise an application. The test app creates a new thread each second, each thread waits for a random period before exiting. I want to be able to create as many threads as possible before hitting memory limits. This ought to be pretty much unlimited as threads end more or less as quickly as they are created, once things hit steady state In practice, it seems that threads don't actually get cleaned up when the thread exits, and thread->create fails after a few hundred. I can improve this by twaeking the stack size, but I'd like to make it that the thread memory is really free after exiting.
Here is a trimmed down version of the code ...
In the real code, the sleep 4 is actually a random time, and of course the thread does other uninteresting stuff. When the code ends, the app prints a warning that threads were all finished but not joined and not detached. If I somehoe try to join the finished ones in the main loop, will I get back the memory from those?
(In practice setting stack size to 32k seems to make this not a real issue, but I'm ever curious ...)
Back to
Seekers of Perl Wisdom
|
|