Behaviour ofparfeval depends on debugging state (Bug?)
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
tommsch
am 29 Jan. 2021
Beantwortet: Edric Ellis
am 29 Jan. 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 );
0 Kommentare
Akzeptierte Antwort
Edric Ellis
am 29 Jan. 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)
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Asynchronous Parallel Programming finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!