Ver Fonte

* Add TerminatedSet (delphi compatibility, bug ID #37388)

git-svn-id: trunk@45805 -
michael há 5 anos atrás
pai
commit
b7bd9f3325

+ 1 - 0
rtl/amicommon/tthread.inc

@@ -116,6 +116,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;

+ 1 - 0
rtl/atari/tthread.inc

@@ -74,6 +74,7 @@ end;
 procedure TThread.Terminate;
 
 begin
+  TerminatedSet;
 end;
 
 

+ 2 - 0
rtl/beos/tthread.inc

@@ -274,6 +274,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;
@@ -560,6 +561,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;

+ 1 - 0
rtl/embedded/tthread.inc

@@ -100,6 +100,7 @@ end;
 procedure TThread.Terminate;
 begin
  FTerminated := true;
+ TerminatedSet;
 end;
 
 

+ 2 - 1
rtl/freertos/tthread.inc

@@ -99,7 +99,8 @@ end;
 
 procedure TThread.Terminate;
 begin
- FTerminated := true;
+  FTerminated := true;
+  TerminatedSet;
 end;
 
 

+ 2 - 1
rtl/gba/tthread.inc

@@ -99,7 +99,8 @@ end;
 
 procedure TThread.Terminate;
 begin
- FTerminated := true;
+  FTerminated := true;
+  TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/go32v2/tthread.inc

@@ -74,6 +74,7 @@ end;
 procedure TThread.Terminate;
 
 begin
+  TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/macos/tthread.inc

@@ -74,6 +74,7 @@ end;
 procedure TThread.Terminate;
 
 begin
+  TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/msdos/tthread.inc

@@ -74,6 +74,7 @@ end;
 procedure TThread.Terminate;
 
 begin
+  TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/nativent/tthread.inc

@@ -48,6 +48,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;

+ 2 - 1
rtl/nds/tthread.inc

@@ -99,7 +99,8 @@ end;
 
 procedure TThread.Terminate;
 begin
- FTerminated := true;
+  FTerminated := true;
+  TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/netware/tthread.inc

@@ -219,6 +219,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
   ThreadSwitch;
 end;
 

+ 1 - 0
rtl/netwlibc/tthread.inc

@@ -364,6 +364,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;

+ 7 - 0
rtl/objpas/classes/classes.inc

@@ -274,6 +274,13 @@ begin
   GetSuspended:=FSuspended;
 end;
 
+Procedure TThread.TerminatedSet;
+
+begin
+  // Empty, must be overridden.
+end;
+
+
 
 procedure TThread.AfterConstruction;
 begin

+ 2 - 1
rtl/objpas/classes/classesh.inc

@@ -1907,6 +1907,7 @@ type
   protected
     FThreadID: TThreadID; // someone might need it for pthread_* calls
     procedure DoTerminate; virtual;
+    procedure TerminatedSet; virtual;
     procedure Execute; virtual; abstract;
     procedure Synchronize(AMethod: TThreadMethod);
     procedure Queue(aMethod: TThreadMethod);
@@ -1989,7 +1990,7 @@ type
     property ThreadID: TThreadID read FThreadID;
     property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate;
     property FatalException: TObject read FFatalException;
-  end;
+  end; 
 
 
 { TComponent class }

+ 2 - 1
rtl/os2/tthread.inc

@@ -212,7 +212,8 @@ end;
 
 procedure TThread.Terminate;
 begin
- FTerminated := true;
+  FTerminated := true;
+  TerminatedSet;
 end;
 
 

+ 2 - 1
rtl/symbian/tthread.inc

@@ -99,7 +99,8 @@ end;
 
 procedure TThread.Terminate;
 begin
- FTerminated := true;
+  FTerminated := true;
+  TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/unix/tthread.inc

@@ -253,6 +253,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;

+ 1 - 0
rtl/wii/tthread.inc

@@ -100,6 +100,7 @@ end;
 procedure TThread.Terminate;
 begin
  FTerminated := true;
+ TerminatedSet;
 end;
 
 

+ 1 - 0
rtl/win/tthread.inc

@@ -95,6 +95,7 @@ end;
 procedure TThread.Terminate;
 begin
   FTerminated := True;
+  TerminatedSet;
 end;
 
 function TThread.WaitFor: Integer;

+ 1 - 0
rtl/win16/tthread.inc

@@ -74,6 +74,7 @@ end;
 procedure TThread.Terminate;
 
 begin
+TerminatedSet;
 end;