summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-07-18 22:35:36 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-07-18 22:35:36 +0000
commit63e6f967f9139308397bd44bdf9c2a4aea903ab0 (patch)
treeaf2eb8b4f1586240ee7b390d40c4fff139ef1c70
parent63611f64fb7120c6277ccdeb6a81c4ffbf6fc3e8 (diff)
downloadfpc-63e6f967f9139308397bd44bdf9c2a4aea903ab0.tar.gz
* Add TerminatedSet (delphi compatibility, bug ID 37388)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45805 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--rtl/amicommon/tthread.inc1
-rw-r--r--rtl/atari/tthread.inc1
-rw-r--r--rtl/beos/tthread.inc2
-rw-r--r--rtl/embedded/tthread.inc1
-rw-r--r--rtl/freertos/tthread.inc3
-rw-r--r--rtl/gba/tthread.inc3
-rw-r--r--rtl/go32v2/tthread.inc1
-rw-r--r--rtl/macos/tthread.inc1
-rw-r--r--rtl/msdos/tthread.inc1
-rw-r--r--rtl/nativent/tthread.inc1
-rw-r--r--rtl/nds/tthread.inc3
-rw-r--r--rtl/netware/tthread.inc1
-rw-r--r--rtl/netwlibc/tthread.inc1
-rw-r--r--rtl/objpas/classes/classes.inc7
-rw-r--r--rtl/objpas/classes/classesh.inc3
-rw-r--r--rtl/os2/tthread.inc3
-rw-r--r--rtl/symbian/tthread.inc3
-rw-r--r--rtl/unix/tthread.inc1
-rw-r--r--rtl/wii/tthread.inc1
-rw-r--r--rtl/win/tthread.inc1
-rw-r--r--rtl/win16/tthread.inc1
21 files changed, 34 insertions, 6 deletions
diff --git a/rtl/amicommon/tthread.inc b/rtl/amicommon/tthread.inc
index 302201ae12..dc3cc5ed0c 100644
--- a/rtl/amicommon/tthread.inc
+++ b/rtl/amicommon/tthread.inc
@@ -116,6 +116,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := True;
+ TerminatedSet;
end;
function TThread.WaitFor: Integer;
diff --git a/rtl/atari/tthread.inc b/rtl/atari/tthread.inc
index 24e7e37f19..17d9d92735 100644
--- a/rtl/atari/tthread.inc
+++ b/rtl/atari/tthread.inc
@@ -74,6 +74,7 @@ end;
procedure TThread.Terminate;
begin
+ TerminatedSet;
end;
diff --git a/rtl/beos/tthread.inc b/rtl/beos/tthread.inc
index a0fb61e1fc..3ab4a4b5a2 100644
--- a/rtl/beos/tthread.inc
+++ b/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;
diff --git a/rtl/embedded/tthread.inc b/rtl/embedded/tthread.inc
index d47e8823f9..6c18542b26 100644
--- a/rtl/embedded/tthread.inc
+++ b/rtl/embedded/tthread.inc
@@ -100,6 +100,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/freertos/tthread.inc b/rtl/freertos/tthread.inc
index d47e8823f9..71df157744 100644
--- a/rtl/freertos/tthread.inc
+++ b/rtl/freertos/tthread.inc
@@ -99,7 +99,8 @@ end;
procedure TThread.Terminate;
begin
- FTerminated := true;
+ FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/gba/tthread.inc b/rtl/gba/tthread.inc
index d47e8823f9..71df157744 100644
--- a/rtl/gba/tthread.inc
+++ b/rtl/gba/tthread.inc
@@ -99,7 +99,8 @@ end;
procedure TThread.Terminate;
begin
- FTerminated := true;
+ FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/go32v2/tthread.inc b/rtl/go32v2/tthread.inc
index 24e7e37f19..17d9d92735 100644
--- a/rtl/go32v2/tthread.inc
+++ b/rtl/go32v2/tthread.inc
@@ -74,6 +74,7 @@ end;
procedure TThread.Terminate;
begin
+ TerminatedSet;
end;
diff --git a/rtl/macos/tthread.inc b/rtl/macos/tthread.inc
index 24e7e37f19..17d9d92735 100644
--- a/rtl/macos/tthread.inc
+++ b/rtl/macos/tthread.inc
@@ -74,6 +74,7 @@ end;
procedure TThread.Terminate;
begin
+ TerminatedSet;
end;
diff --git a/rtl/msdos/tthread.inc b/rtl/msdos/tthread.inc
index 24e7e37f19..17d9d92735 100644
--- a/rtl/msdos/tthread.inc
+++ b/rtl/msdos/tthread.inc
@@ -74,6 +74,7 @@ end;
procedure TThread.Terminate;
begin
+ TerminatedSet;
end;
diff --git a/rtl/nativent/tthread.inc b/rtl/nativent/tthread.inc
index 0fa6f20cad..018e763d2c 100644
--- a/rtl/nativent/tthread.inc
+++ b/rtl/nativent/tthread.inc
@@ -48,6 +48,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := True;
+ TerminatedSet;
end;
function TThread.WaitFor: Integer;
diff --git a/rtl/nds/tthread.inc b/rtl/nds/tthread.inc
index 18f1547108..fc5096ebd2 100644
--- a/rtl/nds/tthread.inc
+++ b/rtl/nds/tthread.inc
@@ -99,7 +99,8 @@ end;
procedure TThread.Terminate;
begin
- FTerminated := true;
+ FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/netware/tthread.inc b/rtl/netware/tthread.inc
index 20a26afdb6..679638f1f9 100644
--- a/rtl/netware/tthread.inc
+++ b/rtl/netware/tthread.inc
@@ -219,6 +219,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := True;
+ TerminatedSet;
ThreadSwitch;
end;
diff --git a/rtl/netwlibc/tthread.inc b/rtl/netwlibc/tthread.inc
index 0ac8e4a168..5b54483bcf 100644
--- a/rtl/netwlibc/tthread.inc
+++ b/rtl/netwlibc/tthread.inc
@@ -364,6 +364,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := True;
+ TerminatedSet;
end;
function TThread.WaitFor: Integer;
diff --git a/rtl/objpas/classes/classes.inc b/rtl/objpas/classes/classes.inc
index 896850ef94..96a88da9a8 100644
--- a/rtl/objpas/classes/classes.inc
+++ b/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
diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc
index 01f2328f0a..785766ac67 100644
--- a/rtl/objpas/classes/classesh.inc
+++ b/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 }
diff --git a/rtl/os2/tthread.inc b/rtl/os2/tthread.inc
index 28a4922942..0c41028183 100644
--- a/rtl/os2/tthread.inc
+++ b/rtl/os2/tthread.inc
@@ -212,7 +212,8 @@ end;
procedure TThread.Terminate;
begin
- FTerminated := true;
+ FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/symbian/tthread.inc b/rtl/symbian/tthread.inc
index d47e8823f9..71df157744 100644
--- a/rtl/symbian/tthread.inc
+++ b/rtl/symbian/tthread.inc
@@ -99,7 +99,8 @@ end;
procedure TThread.Terminate;
begin
- FTerminated := true;
+ FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/unix/tthread.inc b/rtl/unix/tthread.inc
index e58977b48a..984dd46a61 100644
--- a/rtl/unix/tthread.inc
+++ b/rtl/unix/tthread.inc
@@ -253,6 +253,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := True;
+ TerminatedSet;
end;
function TThread.WaitFor: Integer;
diff --git a/rtl/wii/tthread.inc b/rtl/wii/tthread.inc
index d47e8823f9..6c18542b26 100644
--- a/rtl/wii/tthread.inc
+++ b/rtl/wii/tthread.inc
@@ -100,6 +100,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := true;
+ TerminatedSet;
end;
diff --git a/rtl/win/tthread.inc b/rtl/win/tthread.inc
index d7cdbaf246..9e7c039ff5 100644
--- a/rtl/win/tthread.inc
+++ b/rtl/win/tthread.inc
@@ -95,6 +95,7 @@ end;
procedure TThread.Terminate;
begin
FTerminated := True;
+ TerminatedSet;
end;
function TThread.WaitFor: Integer;
diff --git a/rtl/win16/tthread.inc b/rtl/win16/tthread.inc
index 24e7e37f19..b46781cf55 100644
--- a/rtl/win16/tthread.inc
+++ b/rtl/win16/tthread.inc
@@ -74,6 +74,7 @@ end;
procedure TThread.Terminate;
begin
+TerminatedSet;
end;