Hi,

forgot this: after the l4lock_lock of course also a l4lock_unlock is 
called (3 lines after l4lock_lock). So the thread is also dequeued from 
the wait queue of the lock and so no (indirect) association to the 
l4th_tcb_t data structure are hold anymore by the lock/sem. implementation.

Alex B.

Alexander Boettcher wrote:
> Hi Adam & all,
> 
> here the calling graph, which seems to cause the issue:
> 
> lib/src/exit.c: __do_exit () the state is set to TCB_SHUTDOWN
> 
> Afterwards the thread in shutdown progress calls __do_cleanup_and_block() ->
> l4th_stack_free ->
> l4th_pages_free ->
> l4rm_detach () ->
> l4rm_lock_region_list() ->
> l4lock_lock () ->
> IPC to semaphore lib if locked
> [! we have contention, threads in creation or in shutdown progress, 
> otherwise no call to the semaphore lib is required] ->
> get_prio () ->
> sanity check TCB_ACTIVE
> 
> Here the data structure [l4th_tcb_t] is still valid and associated to 
> the thread. This data structure is removed after l4th_stack_free() 
> invocation by l4th_tcb_deallocate(tcb).
> 
> So it seems to be no problem in general, because the data structure is 
> still valid and associated to the thread in shutdown progress. However a 
> solution could be to extend the sanity check from tcb_active also to 
> allow tcb_shutdown [bad/good don't know] or to move around the 
> tcb_shutdown state [possibly bad idea] or to introduce another state and 
> extend sanity check.
> 
> Best,
> 
> Alex B.
> 
> Marc CHALAND wrote:
>> 2008/1/24, Adam Lackorzynski <[EMAIL PROTECTED]>:
>>
>>> No, the thread is still alive, the '(deleted)' just means that it has
>>> already been unregistered at the name service.
>> Name service data is stored into fiasco data to be shown into jdb ?
>>
>>> Could you verify the theory that the threadlib has some strange state at
>>> that time? So basically that l4thread_get_prio is returning -L4_EINVAL
>> Yes, return value is -L4_EINVAL.
>>
>>> and then what the value of l4th_tcbs[thread].state in l4th_tcb_get is
>>> (include/__tcb.h).
>> state of thread is 4 : TCB_SHUTDOWN.
>> Hope this helps ?
>>
>> Regards
>> Marc
>>
>> _______________________________________________
>> l4-hackers mailing list
>> l4-hackers@os.inf.tu-dresden.de
>> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
> 
> _______________________________________________
> l4-hackers mailing list
> l4-hackers@os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

Reply via email to