site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com On Oct 31, 2004, at 5:40 PM, Marc Van Olmen wrote: http://www.awprofessional.com/title/0201633922 matt. _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This problem was related to the fact that I called pthread_detach at the end of the feeder thread routine. Also I was waiting with pthread_join until the thread was finished. So if I called the pthread_detach after the pthread_join everything was fine and also all the resources were deleted. Then the real problem was that you were calling pthread_join on a (potentially) non-existent thread. You want to either pthread_detach, or pthread_join, not both. Both of these will reclaim the thread's resources, with pthread_join providing a rudimentary synchronization mechanism. Also, your fix still has a bug, since now you're calling pthread_detach on a non-existent thread. Also, if you know you're going to detach the thread, and don't need the join synchronization, you should just create it with the PTHREAD_CREATE_DETACHED attribute and avoid calling pthread_detached. These and other pthreads concepts are explained in any good pthreads reference. I usually recommend David Butenhof's _Programming_with_POSIX(R)_Threads_: This email sent to site_archiver@lists.apple.com