Ver Fonte

Fixed potential task race issue.

woollybah há 7 anos atrás
pai
commit
693999dd34
1 ficheiros alterados com 4 adições e 1 exclusões
  1. 4 1
      bmk_ng.bmx

+ 4 - 1
bmk_ng.bmx

@@ -1593,6 +1593,9 @@ Type TThreadPool
 			
 			Local task:TThreadPoolTask = pool._queue[pool._head]
 			
+			Local func:Object(data:Object) = task.func
+			Local data:Object = task.data
+			
 			pool._head :+ 1
 			
 			If pool._head = pool._queue.length Then
@@ -1607,7 +1610,7 @@ Type TThreadPool
 			pool._lock.Unlock()
 			
 			' perform a task
-			task.func(task.data)
+			func(data)
 			
 			pool._lock.Lock()
 			pool._running :- 1