Behaviour ofparfeval depends on debugging state (Bug?)

1 visualización (últimos 30 días)
tommsch
tommsch el 29 de En. de 2021
Respondida: Edric Ellis el 29 de En. de 2021
I have the following function, which should return false. If I set a breakpoint at the first line, and then step through the program, I get the message:
Analyzing and transferring files to the workers ...done
and the function returns false. But when I just execute the function, no message is issued and the function returns true. Is this a bug?
function ret = testparfeval;
F = parfeval( gcp(), @afssasgdd, 0 ); %this is a non-existent function
while( isequal(F(1).State,'queued') );
pause( 0.1 ); end;
ret = isempty( F.Error );

Respuesta aceptada

Edric Ellis
Edric Ellis el 29 de En. de 2021
I suspect this is because when you don't stop in the debugger, the function can return as soon as F gets into state 'running', i.e. before it gets to state 'finished'. Rather than polling the State property, I'd recommend using the wait method, like this:
F = parfeval(gcp(), @afssasgdd, 0);
wait(F);
didError = ~isempty(F.Error)
The wait method can take an optional timeout if you wish.

Más respuestas (0)

Categorías

Más información sobre Manage Products en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by