diff options
| author | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-11-28 20:15:22 +0000 |
|---|---|---|
| committer | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-11-28 20:15:22 +0000 |
| commit | c98ffe65e6eba0d53409b2569bc6083932a06932 (patch) | |
| tree | 7965cb7d4f2ebbd279a8759f238e8a210ec4c761 /packages/fcl-base | |
| parent | 63988f1872d4bb78cee1f8ff45273942ae5274c8 (diff) | |
| download | fpc-c98ffe65e6eba0d53409b2569bc6083932a06932.tar.gz | |
* Added WaitFor to fix 18044
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16468 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-base')
| -rw-r--r-- | packages/fcl-base/src/fptimer.pp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/fcl-base/src/fptimer.pp b/packages/fcl-base/src/fptimer.pp index 3477869858..4d515cdea6 100644 --- a/packages/fcl-base/src/fptimer.pp +++ b/packages/fcl-base/src/fptimer.pp @@ -182,6 +182,7 @@ Type TFPThreadedTimerDriver = Class(TFPTimerDriver) Private FThread : TFPTimerThread; + Procedure DoNilTimer(Sender : TObject); Public Procedure StartTimer; override; Procedure StopTimer; override; @@ -242,10 +243,17 @@ end; TFPThreadedTimerDriver ---------------------------------------------------------------------} +Procedure TFPThreadedTimerDriver.DoNilTimer(Sender : TObject); + +begin + FThread:=Nil; +end; + Procedure TFPThreadedTimerDriver.StartTimer; begin FThread:=TFPTimerThread.CreateTimerThread(Self); + FThread.OnTerminate:=@DoNilTimer; FThread.Resume; end; @@ -253,8 +261,9 @@ Procedure TFPThreadedTimerDriver.StopTimer; begin FThread.FTimerDriver:=Nil; FThread.Terminate; // Will free itself. - FThread:=Nil; CheckSynchronize; // make sure thread is not stuck at synchronize call. + If Assigned(FThread) then + Fthread.WaitFor; end; |
