Bläddra i källkod

* don't destroy fsem in tthread.destroy before its potential last use

git-svn-id: trunk@5678 -
Jonas Maebe 18 år sedan
förälder
incheckning
cf4b3f2e4d
1 ändrade filer med 2 tillägg och 1 borttagningar
  1. 2 1
      rtl/unix/tthread.inc

+ 2 - 1
rtl/unix/tthread.inc

@@ -162,10 +162,10 @@ begin
       inherited destroy;
       exit;
     end;
-  CurrentTM.SemaphoreDestroy(FSem);
   if (FHandle = TThreadID(0)) then
   { another exception in constructor }
     begin
+      CurrentTM.SemaphoreDestroy(FSem);
       inherited destroy;
       exit;
     end;
@@ -181,6 +181,7 @@ begin
         Resume;
       WaitFor;
     end;
+  CurrentTM.SemaphoreDestroy(FSem);
   FFatalException.Free;
   FFatalException := nil;
   { threadvars have been released by cthreads.ThreadMain -> DoneThread }