mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 12:59:14 +02:00
FpDebug: Add {$IFDEF TEST_FPDEBUG_SINGLE_THREAD} so the code can be run single-threaded.
This commit is contained in:
parent
82d1e129a0
commit
0e5ea13b8a
@ -654,6 +654,9 @@ var
|
|||||||
OldState: Cardinal;
|
OldState: Cardinal;
|
||||||
Evnt: PRTLEvent;
|
Evnt: PRTLEvent;
|
||||||
begin
|
begin
|
||||||
|
{$IFDEF TEST_FPDEBUG_SINGLE_THREAD}
|
||||||
|
exit;
|
||||||
|
{$ENDIF}
|
||||||
(* | True (wait for run in work thread) | False (run in caller thread)
|
(* | True (wait for run in work thread) | False (run in caller thread)
|
||||||
TWSTATE_NEW : mark TWSTATE_WAIT_WORKER => wait : ~
|
TWSTATE_NEW : mark TWSTATE_WAIT_WORKER => wait : ~
|
||||||
TWSTATE_RUNNING : mark TWSTATE_WAIT_WORKER => wait : mark TWSTATE_WAITING => wait
|
TWSTATE_RUNNING : mark TWSTATE_WAIT_WORKER => wait : mark TWSTATE_WAITING => wait
|
||||||
@ -927,6 +930,9 @@ procedure TFpThreadWorkerQueue.SetThreadCount(AValue: integer);
|
|||||||
var
|
var
|
||||||
c: Integer;
|
c: Integer;
|
||||||
begin
|
begin
|
||||||
|
{$IFDEF TEST_FPDEBUG_SINGLE_THREAD}
|
||||||
|
exit;
|
||||||
|
{$ENDIF}
|
||||||
FThreadMonitor.Enter;
|
FThreadMonitor.Enter;
|
||||||
try
|
try
|
||||||
InterLockedExchange(FWantedCount, AValue);
|
InterLockedExchange(FWantedCount, AValue);
|
||||||
@ -1082,6 +1088,13 @@ begin
|
|||||||
DebugLn(FLogGroup and DBG_VERBOSE, '%s!%s PUSH WorkItem: "%s"', [dbgsThread, DbgSTime, AItem.DebugText]);
|
DebugLn(FLogGroup and DBG_VERBOSE, '%s!%s PUSH WorkItem: "%s"', [dbgsThread, DbgSTime, AItem.DebugText]);
|
||||||
AItem.FLogGroup := FLogGroup;
|
AItem.FLogGroup := FLogGroup;
|
||||||
AItem.AddRef;
|
AItem.AddRef;
|
||||||
|
{$IFDEF TEST_FPDEBUG_SINGLE_THREAD}
|
||||||
|
if not ShutDown then begin
|
||||||
|
AItem.DoExecute;
|
||||||
|
AItem.DecRef;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
if ShutDown or (ThreadCount = 0) then begin
|
if ShutDown or (ThreadCount = 0) then begin
|
||||||
AItem.DoUnQueued;
|
AItem.DoUnQueued;
|
||||||
AItem.DecRef;
|
AItem.DecRef;
|
||||||
@ -1098,6 +1111,13 @@ begin
|
|||||||
DebugLn(FLogGroup and DBG_VERBOSE, '%s!%s PUSHorRUN WorkItem: "%s"', [dbgsThread, DbgSTime, AItem.DebugText]);
|
DebugLn(FLogGroup and DBG_VERBOSE, '%s!%s PUSHorRUN WorkItem: "%s"', [dbgsThread, DbgSTime, AItem.DebugText]);
|
||||||
AItem.FLogGroup := FLogGroup;
|
AItem.FLogGroup := FLogGroup;
|
||||||
AItem.AddRef;
|
AItem.AddRef;
|
||||||
|
{$IFDEF TEST_FPDEBUG_SINGLE_THREAD}
|
||||||
|
if not ShutDown then begin
|
||||||
|
AItem.DoExecute;
|
||||||
|
AItem.DecRef;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
if ShutDown or (ThreadCount = 0) then begin
|
if ShutDown or (ThreadCount = 0) then begin
|
||||||
AItem.DoUnQueued;
|
AItem.DoUnQueued;
|
||||||
AItem.DecRef;
|
AItem.DecRef;
|
||||||
|
Loading…
Reference in New Issue
Block a user