Browse Source

* Added WaitFor to fix 18044

git-svn-id: trunk@16468 -
michael 14 years ago
parent
commit
6954c0a598
1 changed files with 10 additions and 1 deletions
  1. 10 1
      packages/fcl-base/src/fptimer.pp

+ 10 - 1
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;