|
@@ -399,12 +399,14 @@ procedure WasiAllocateThreadVars; forward;
|
|
{$push}{$S-} // no stack checking for this procedure
|
|
{$push}{$S-} // no stack checking for this procedure
|
|
procedure FPCWasmThreadStartPascal(tid: longint; start_arg: PWasmThread);
|
|
procedure FPCWasmThreadStartPascal(tid: longint; start_arg: PWasmThread);
|
|
begin
|
|
begin
|
|
- {$IFDEF DEBUGWASMTHREADS}DebugWriteln('FPCWasmThreadStartPascal(...)');{$ENDIF}
|
|
|
|
|
|
+ {$IFDEF DEBUGWASMTHREADS}DebugWriteln('FPCWasmThreadStartPascal('+IntToStr(tid)+','+IntToStr(ptrint(start_arg))+')');{$ENDIF}
|
|
|
|
|
|
start_arg^.ID:=tid;
|
|
start_arg^.ID:=tid;
|
|
- GlobalCurrentThread:=@start_arg;
|
|
|
|
|
|
+ GlobalCurrentThread:=start_arg;
|
|
GlobalIsMainThread:=0;
|
|
GlobalIsMainThread:=0;
|
|
GlobalIsWorkerThread:=1;
|
|
GlobalIsWorkerThread:=1;
|
|
|
|
+ {$IFDEF DEBUGWASMTHREADS}DebugWriteln('Check : TID='+IntToStr(tid)+', start_arg_id='+IntToStr(start_arg^.ID)+', currentthread= '+IntTostr(ptrint(GetCurrentThreadID))+')');{$ENDIF}
|
|
|
|
+
|
|
{$IFDEF FPC_WASM_WORKER_THREADS_CAN_WAIT}
|
|
{$IFDEF FPC_WASM_WORKER_THREADS_CAN_WAIT}
|
|
GlobalIsThreadBlockable:=1;
|
|
GlobalIsThreadBlockable:=1;
|
|
{$ELSE FPC_WASM_WORKER_THREADS_CAN_WAIT}
|
|
{$ELSE FPC_WASM_WORKER_THREADS_CAN_WAIT}
|
|
@@ -610,6 +612,7 @@ begin
|
|
Result:=0;
|
|
Result:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+
|
|
function WasiGetCurrentThreadId : TThreadID;
|
|
function WasiGetCurrentThreadId : TThreadID;
|
|
begin
|
|
begin
|
|
Result:=GetSelfThread;
|
|
Result:=GetSelfThread;
|