Hello,
I coded a temporary fix for this bug : http://www.purebasic.fr/english/viewtopic.php?t=22171
Code: Select all
Structure _Thread
ThreadID.q
ThreadPB.l
EndStructure
Global NewList _Threads._Thread()
Global _Thread.q = 0
;##################################################################################################################;
Procedure CreateThreadEx(*Function, Value)
ForEach _Threads()
If (IsThread(_Threads()\ThreadPB) = 0)
DeleteElement(_Threads())
EndIf
Next
_Thread + 1
AddElement(_Threads())
_Threads()\ThreadID = _Thread
_Threads()\ThreadPB = CreateThread(*Function, Value)
ProcedureReturn _Thread
EndProcedure
;##################################################################################################################;
Procedure IsThreadEx(ThreadID)
ThreadPB = 0
ForEach _Threads()
If (_Threads()\ThreadID = ThreadID)
If (IsThread(_Threads()\ThreadPB))
ThreadPB = _Threads()\ThreadPB
Break
EndIf
EndIf
Next
ProcedureReturn ThreadPB
EndProcedure
;##################################################################################################################;
Procedure KillThreadEx(ThreadID)
ThreadPB = IsThreadEx(ThreadID)
If (ThreadPB)
KillThread(ThreadPB)
EndIf
ProcedureReturn 0
EndProcedure
;##################################################################################################################;
Procedure PauseThreadEx(ThreadID)
ThreadPB = IsThreadEx(ThreadID)
If (ThreadPB)
PauseThread(ThreadPB)
EndIf
ProcedureReturn 0
EndProcedure
;##################################################################################################################;
Procedure ResumeThreadEx(ThreadID)
ThreadPB = IsThreadEx(ThreadID)
If (ThreadPB)
ResumeThread(ThreadPB)
EndIf
ProcedureReturn 0
EndProcedure
;##################################################################################################################;
Procedure ThreadPriorityEx(ThreadID, Priority)
ThreadPB = IsThreadEx(ThreadID)
If (ThreadPB)
ThreadPriority(ThreadPB, Priority)
EndIf
ProcedureReturn 0
EndProcedure
;##################################################################################################################;
Procedure WaitThreadEx(ThreadID)
ThreadPB = IsThreadEx(ThreadID)
If (ThreadPB)
WaitThread(ThreadPB)
EndIf
ProcedureReturn 0
EndProcedure
;##################################################################################################################;

Bye.