Question about semaphores and threads

Adam Lackorzynski adam at
Tue Jan 22 22:26:01 CET 2008


On Tue Jan 22, 2008 at 15:42:55 +0100, Marc CHALAND wrote:
> Sometimes, I get the following message :
> semaphore/lib/src/semaphore.c:167:__enqueue_thread():
>   Error : l4semahore: failed to get priority of thread 17.08: invalid
> argument (-3)
> Into sources, the comment says that thread has not been created by
> l4thread or is dead.
> But all threads are created by l4thread and no one is explicitly
> killed by another thread. Is there a mechanism which kills threads ?
> Is it possible a lock is requested as thread is not completely created
> ? Anybody has got an idea on what happens ?

The thread should exist, looking at the code path in the semaphore lib.
The thread_id used for the prio-get is coming fron an ipc-wait so the
thread should be there (in the sense there's a thread at all). The
thread-lib might have some other state than ACTIVE for this thread.
If you look in the debugger, the thread is there and its state is fine?
If it happens, is it a permanent error or just sporadic? Does it happen
during some setup phase or after that when things have settled?

Adam                 adam at

More information about the l4-hackers mailing list