mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-22 17:59:22 +02:00
FpDebug: WorkerQueue, protect with try finally
git-svn-id: trunk@63834 -
This commit is contained in:
parent
b2b157269c
commit
c15f2179e9
@ -420,9 +420,11 @@ begin
|
|||||||
|
|
||||||
if (OldState in [TWSTATE_NEW, TWSTATE_WAIT_WORKER]) then begin
|
if (OldState in [TWSTATE_NEW, TWSTATE_WAIT_WORKER]) then begin
|
||||||
(* State is now either TWSTATE_RUNNING or TWSTATE_WAIT_WORKER *)
|
(* State is now either TWSTATE_RUNNING or TWSTATE_WAIT_WORKER *)
|
||||||
|
try
|
||||||
if not StopRequested then
|
if not StopRequested then
|
||||||
DoExecute;
|
DoExecute;
|
||||||
|
|
||||||
|
finally
|
||||||
OldState := InterLockedExchange(FState, TWSTATE_DONE);
|
OldState := InterLockedExchange(FState, TWSTATE_DONE);
|
||||||
if (OldState in [TWSTATE_WAITING, TWSTATE_WAIT_WORKER, TWSTATE_CANCEL]) then
|
if (OldState in [TWSTATE_WAITING, TWSTATE_WAIT_WORKER, TWSTATE_CANCEL]) then
|
||||||
RTLeventSetEvent(MyWorkerThread.Queue.MainWaitEvent)
|
RTLeventSetEvent(MyWorkerThread.Queue.MainWaitEvent)
|
||||||
@ -432,6 +434,7 @@ begin
|
|||||||
WriteBarrier;
|
WriteBarrier;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFpThreadWorkerItem.WaitForFinish(AnMainWaitEvent: PRTLEvent;
|
procedure TFpThreadWorkerItem.WaitForFinish(AnMainWaitEvent: PRTLEvent;
|
||||||
AWaitForExecInThread: Boolean);
|
AWaitForExecInThread: Boolean);
|
||||||
|
Loading…
Reference in New Issue
Block a user