mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-23 20:29:35 +02:00
Merged revisions 3519 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk r3519 (florian) * fixed leaking of TThread git-svn-id: branches/fixes_2_0@3521 -
This commit is contained in:
parent
8dcba495f4
commit
f5b758aa35
@ -176,7 +176,8 @@ begin
|
|||||||
LThread.Free;
|
LThread.Free;
|
||||||
WRITE_DEBUG('Thread freed');
|
WRITE_DEBUG('Thread freed');
|
||||||
end;
|
end;
|
||||||
WRITE_DEBUG('thread func exiting');
|
WRITE_DEBUG('thread func calling EndThread');
|
||||||
|
EndThread(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
@ -181,7 +181,8 @@ begin
|
|||||||
LThread.Free;
|
LThread.Free;
|
||||||
WRITE_DEBUG('Thread freed');
|
WRITE_DEBUG('Thread freed');
|
||||||
end;
|
end;
|
||||||
WRITE_DEBUG('thread func exiting');
|
WRITE_DEBUG('thread func calling EndThread');
|
||||||
|
EndThread(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
@ -181,7 +181,8 @@ begin
|
|||||||
LThread.Free;
|
LThread.Free;
|
||||||
WRITE_DEBUG('Thread freed');
|
WRITE_DEBUG('Thread freed');
|
||||||
end;
|
end;
|
||||||
WRITE_DEBUG('thread func exiting');
|
WRITE_DEBUG('thread func calling EndThread');
|
||||||
|
EndThread(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
@ -91,26 +91,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function ThreadProc(Args: pointer): Integer; cdecl;
|
|
||||||
var
|
|
||||||
FreeThread: Boolean;
|
|
||||||
Thread: TThread absolute Args;
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
Thread.Execute;
|
|
||||||
except
|
|
||||||
Thread.FFatalException := TObject(AcquireExceptionObject);
|
|
||||||
end;
|
|
||||||
FreeThread := Thread.FFreeOnTerminate;
|
|
||||||
Result := Thread.FReturnValue;
|
|
||||||
Thread.FFinished := True;
|
|
||||||
Thread.DoTerminate;
|
|
||||||
if FreeThread then Thread.Free;
|
|
||||||
{
|
|
||||||
DosExit (deThread, Result);
|
|
||||||
}
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TThread.Create(CreateSuspended: Boolean;
|
constructor TThread.Create(CreateSuspended: Boolean;
|
||||||
const StackSize: SizeUInt = DefaultStackSize);
|
const StackSize: SizeUInt = DefaultStackSize);
|
||||||
var
|
var
|
||||||
|
@ -172,7 +172,8 @@ begin
|
|||||||
LThread.Free;
|
LThread.Free;
|
||||||
WRITE_DEBUG('Thread freed');
|
WRITE_DEBUG('Thread freed');
|
||||||
end;
|
end;
|
||||||
WRITE_DEBUG('thread func exiting');
|
WRITE_DEBUG('thread func calling EndThread');
|
||||||
|
EndThread(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
@ -125,30 +125,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TThread }
|
|
||||||
function ThreadProc(args:pointer): Integer;
|
|
||||||
var
|
|
||||||
FreeThread: Boolean;
|
|
||||||
Thread : TThread absolute args;
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
Thread.Execute;
|
|
||||||
except
|
|
||||||
Thread.FFatalException := TObject(AcquireExceptionObject);
|
|
||||||
end;
|
|
||||||
FreeThread := Thread.FFreeOnTerminate;
|
|
||||||
ThreadProc := Thread.FReturnValue;
|
|
||||||
Thread.FFinished := True;
|
|
||||||
Thread.DoTerminate;
|
|
||||||
if FreeThread then
|
|
||||||
begin
|
|
||||||
Thread.Destroy;
|
|
||||||
Thread.Free;
|
|
||||||
end;
|
|
||||||
EndThread(Result);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
constructor TThread.Create(CreateSuspended: Boolean;
|
constructor TThread.Create(CreateSuspended: Boolean;
|
||||||
const StackSize: SizeUInt = DefaultStackSize);
|
const StackSize: SizeUInt = DefaultStackSize);
|
||||||
var
|
var
|
||||||
|
@ -247,7 +247,8 @@ begin
|
|||||||
LThread.Free;
|
LThread.Free;
|
||||||
WRITE_DEBUG('Thread freed'#13#10);
|
WRITE_DEBUG('Thread freed'#13#10);
|
||||||
end;
|
end;
|
||||||
WRITE_DEBUG('thread func exiting'#13#10);
|
WRITE_DEBUG('thread func calling EndThread'#13#10);
|
||||||
|
EndThread(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
@ -182,7 +182,8 @@ begin
|
|||||||
LThread.Free;
|
LThread.Free;
|
||||||
WRITE_DEBUG('Thread freed');
|
WRITE_DEBUG('Thread freed');
|
||||||
end;
|
end;
|
||||||
WRITE_DEBUG('thread func exiting');
|
WRITE_DEBUG('thread func calling EndThread');
|
||||||
|
EndThread(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
@ -155,24 +155,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function ThreadProc(Args: pointer): Integer; cdecl;
|
|
||||||
var
|
|
||||||
FreeThread: Boolean;
|
|
||||||
Thread: TThread absolute Args;
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
Thread.Execute;
|
|
||||||
except
|
|
||||||
Thread.FFatalException := TObject(AcquireExceptionObject);
|
|
||||||
end;
|
|
||||||
FreeThread := Thread.FFreeOnTerminate;
|
|
||||||
Result := Thread.FReturnValue;
|
|
||||||
Thread.FFinished := True;
|
|
||||||
Thread.DoTerminate;
|
|
||||||
if FreeThread then Thread.Free;
|
|
||||||
DosExit (deThread, Result);
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TThread.Create(CreateSuspended: Boolean;
|
constructor TThread.Create(CreateSuspended: Boolean;
|
||||||
const StackSize: SizeUInt = DefaultStackSize);
|
const StackSize: SizeUInt = DefaultStackSize);
|
||||||
var
|
var
|
||||||
|
@ -97,23 +97,6 @@ end;
|
|||||||
|
|
||||||
{ TThread }
|
{ TThread }
|
||||||
|
|
||||||
function ThreadProc(ThreadObjPtr: Pointer): Integer;
|
|
||||||
var
|
|
||||||
FreeThread: Boolean;
|
|
||||||
Thread: TThread absolute ThreadObjPtr;
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
Thread.Execute;
|
|
||||||
except
|
|
||||||
Thread.FFatalException := TObject(AcquireExceptionObject);
|
|
||||||
end;
|
|
||||||
FreeThread := Thread.FFreeOnTerminate;
|
|
||||||
Result := Thread.FReturnValue;
|
|
||||||
Thread.FFinished := True;
|
|
||||||
Thread.DoTerminate;
|
|
||||||
if FreeThread then Thread.Free;
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TThread.Create(CreateSuspended: Boolean;
|
constructor TThread.Create(CreateSuspended: Boolean;
|
||||||
const StackSize: SizeUInt = DefaultStackSize);
|
const StackSize: SizeUInt = DefaultStackSize);
|
||||||
var
|
var
|
||||||
|
Loading…
Reference in New Issue
Block a user