Hi There,

we are working with etherlab's ethercat master and recently we've encountered a 
problem that is related to a non interruptible wait_event().

The scenario:
A multi-threaded user space app cyclically reads SDO from some ecat slave.
The user space app then crashes.
All the threads end besides the one that performs the SDO read:

.....
1022  1022 TS       -   0  19   0  0.0 Zl   task_dead                abcde 
<defunct>
1022  1202 RR       2   -  42   0  0.6 Dl   ecrt_master_sdo_upload   abcde1
.....

This situation interferes with debugging the app, and prevents a core dump from 
being generated.

In master.c in ecrt_master_sdo_upload() I see an invoke of 
wait_event_interruptible() followed by an invoke of wait_event().

After changing wait_event() to wait_event_interruptible() the app can 
successfully crash, and it is now easier to debug.

Needless to say, we need a core dump to be generated when the app crashes at 
costumer's site.

The question is what is the reason behind using wait_event() instead of 
wait_event_interruptible() ?

Is it safe for us to change the code?

Thanks,

Nir.
_______________________________________________
etherlab-dev mailing list
etherlab-dev@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-dev

Reply via email to