[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnustep-cvs] Locking tidups/fixes
From: |
Richard Frith-Macdonald |
Subject: |
Re: [Gnustep-cvs] Locking tidups/fixes |
Date: |
Sat, 1 Nov 2003 10:17:24 +0000 |
On Saturday, November 1, 2003, at 09:51 AM, David Ayers wrote:
Richard Frith-Macdonald wrote:
*+* Sat Nov 01 07:05:00 2003 Richard Frith-Macdonald <address@hidden>
*+*
*+* * Source/NSNotificationCenter.m: Simplify locking code as original
*+* code was hanging in GNUMail after Davids recent locking changes
...
*+* not sure what the actual problem was, so this change may have
merely
*+* re-hidden a bug :-(
*+* * Source/Additions/Unicode.m: Simplify to use non-recursive lock.
*+*
Thanks,
This is strange, I had assumed that the problem was due to some of the
RunLoop changes. I'll have a closer look at it, once I have some time
with a -gui system.
When I looked at GNUMail under debug ...
one thread was waiting for a reply after sending a root proxy request
one thread was in poll() in a pthread function.
one thread was blocking waiting for a pthread lock while trying to lock
a notification center table.
The problem went away if I reverted your Unicode.m changes ... implying
it was something to do
with the use of lazy locking there .. interacting with the locking
involved in the notification system
being set up when the app became multi-threaded.
The locking code in NSNotificationCenter *looked* ok (and has been
working for a *long* time),
but simplifying it a bit by using lazy locks got rid of the problem. I
also spent quite a while going
over the new locking code again and didn't spot any errors.