mdsplus
mdsplus copied to clipboard
Fix: mdsip services zombie processes
When executing a shot cycle using D-Tacq's digitizers, sometimes mdsip processes become zombie processes. This, in turn, will break the shot cycle for the user.
Those mdsip process will contain sockets that were kept open, even when no data was being received.
Solution: the while loop that controls the data being received from the socket (in the device driver) has now a new logic, that includes using the value of the running node (false or true) to exit the loop correctly when executing the stop method.
For this to work, the user needs to be sure it runs the stop method for the device.
Yes, that is correct, we basically fixed two drivers for modules 435 and 423. Now, I think our change to the same part of the code are the same as your suggestion, am I right? Because we also check for a socket.timeout
in the try
when reading the memoryview()
, which is where the check for the nbytes
is. I must be missing something.