On 05/08/2013 06:06 PM, Philippe Gerum wrote:
On 05/08/2013 04:30 PM, Paolo Minazzi wrote:
I think to be very near to the solution of this problem.
Thanks to Gilles for his patience.

Now I will retry to make a summary of the problem.


<snip>

The thread 1 finds thread 70 in debug mode !


Which is expected. thread 70 has to be scheduled in with no pending ptrace 
signals for leaving this mode, and this may happen long after the truckload of 
other threads releases the CPU.

My patch adjust this problem.

I realize that it is a very special case, but it is my case.

I'd like to know if the patch is valid or can be written in a different
way.
For example, I could insert my patch directly in xnpod_delete_thread().

The function unlock_timers() cannot be called from
xenomai-2.5.6/ksrc/skins/native/task.c
because it is defined static. This is a detail. There are simple ways to
solve this.


No, really the patch is wrong, but what you expose does reveal a bug in the 
Xenomai core for sure. As Gilles told you, you would be only papering over that 
real bug, which would likely show up in a different situation.

First we need to check for a lock imbalance, I don't think that code is 
particularly safe.

I mean a lock imbalance introduced by an unexpected race between the locking/unlocking calls. The assertions introduced by this patch might help detecting this, with some luck.

--
Philippe.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to