The prototype initially creates 700 threads all of which are contained in a vector (threadList), each thread does some "simple" string processing (basically tokenize a string) and then exists. On completion of the thread, the thread sets its own state in the thread-class to dead.
Another thread called GarbageCollector, which is created before the other threads are created, is continually traversing the threadList, looking for dead threads, once a dead thread is found, it deletes the pointer pointing to the thread class in the list, creates a new thread and adds it to the end of the list. Hence continually maintaining the number of threads being run at any one time, (hopefully)
Hi Arash,
i can confirm that this is a bug in cygwin.
I will apply my changes when your testcase runs successfull over night, therefore this should be fixed one of the next snapshots.
Thanks for your stress test.
Thomas
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/