I don't understand why your saying i only created one child thread from the beginning to end!?!? If what you're saying is correct, and ive got $workers = 1, then when i launch the 1st thread, and it never quits, threads->list should always contain it's tid, therefore no more threads should be created and it should just sit there after showing:
Starting workerPool...
creating new threads
---I am thread 1!
BUT, on my machine it doesnt, it goes on to print "I am thread X.. blah" where X goes from 1 till roughly 1020. Why?? And why does it get to around 1020 and then just hang?? confused :-/
Many thanks!
P.S more info on what i'm trying to do is given in my reply to submersible_toaster (the url)