diff --git a/ChangeLog b/ChangeLog index 2d596e4f2..fd5801940 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-24 Richard Frith-Macdonald + + * Source/NSThread.m: Use lock to prevent race condition setting up + runloop info for thread. + 2009-05-23 Richard Frith-Macdonald * Source/NSKeyValueObserving.m: diff --git a/Source/NSThread.m b/Source/NSThread.m index 5f9a15c3c..a9db1a75c 100644 --- a/Source/NSThread.m +++ b/Source/NSThread.m @@ -1057,7 +1057,12 @@ GSRunLoopInfoForThread(NSThread *aThread) } if (((NSThread_ivars*)aThread)->_runLoopInfo == nil) { - ((NSThread_ivars*)aThread)->_runLoopInfo = [GSRunLoopThreadInfo new]; + [gnustep_global_lock lock]; + if (((NSThread_ivars*)aThread)->_runLoopInfo == nil) + { + ((NSThread_ivars*)aThread)->_runLoopInfo = [GSRunLoopThreadInfo new]; + } + [gnustep_global_lock unlock]; } info = ((NSThread_ivars*)aThread)->_runLoopInfo; return info;