Re: mach_port_deallocate(kernel_thread) failed: (os/kern) invalid
Re: mach_port_deallocate(kernel_thread) failed: (os/kern) invalid
- Subject: Re: mach_port_deallocate(kernel_thread) failed: (os/kern) invalid
- From: Matt Watson <email@hidden>
- Date: Sun, 31 Oct 2004 19:43:30 -0800
On Oct 31, 2004, at 5:40 PM, Marc Van Olmen wrote:
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_:
http://www.awprofessional.com/title/0201633922
matt.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden