mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 07:59:09 +02:00
* Added WaitFor to fix 18044
git-svn-id: trunk@16468 -
This commit is contained in:
parent
df8413a422
commit
6954c0a598
@ -182,6 +182,7 @@ Type
|
|||||||
TFPThreadedTimerDriver = Class(TFPTimerDriver)
|
TFPThreadedTimerDriver = Class(TFPTimerDriver)
|
||||||
Private
|
Private
|
||||||
FThread : TFPTimerThread;
|
FThread : TFPTimerThread;
|
||||||
|
Procedure DoNilTimer(Sender : TObject);
|
||||||
Public
|
Public
|
||||||
Procedure StartTimer; override;
|
Procedure StartTimer; override;
|
||||||
Procedure StopTimer; override;
|
Procedure StopTimer; override;
|
||||||
@ -242,10 +243,17 @@ end;
|
|||||||
TFPThreadedTimerDriver
|
TFPThreadedTimerDriver
|
||||||
---------------------------------------------------------------------}
|
---------------------------------------------------------------------}
|
||||||
|
|
||||||
|
Procedure TFPThreadedTimerDriver.DoNilTimer(Sender : TObject);
|
||||||
|
|
||||||
|
begin
|
||||||
|
FThread:=Nil;
|
||||||
|
end;
|
||||||
|
|
||||||
Procedure TFPThreadedTimerDriver.StartTimer;
|
Procedure TFPThreadedTimerDriver.StartTimer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
FThread:=TFPTimerThread.CreateTimerThread(Self);
|
FThread:=TFPTimerThread.CreateTimerThread(Self);
|
||||||
|
FThread.OnTerminate:=@DoNilTimer;
|
||||||
FThread.Resume;
|
FThread.Resume;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -253,8 +261,9 @@ Procedure TFPThreadedTimerDriver.StopTimer;
|
|||||||
begin
|
begin
|
||||||
FThread.FTimerDriver:=Nil;
|
FThread.FTimerDriver:=Nil;
|
||||||
FThread.Terminate; // Will free itself.
|
FThread.Terminate; // Will free itself.
|
||||||
FThread:=Nil;
|
|
||||||
CheckSynchronize; // make sure thread is not stuck at synchronize call.
|
CheckSynchronize; // make sure thread is not stuck at synchronize call.
|
||||||
|
If Assigned(FThread) then
|
||||||
|
Fthread.WaitFor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user