[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #28104] NSNotificationQueue may loose notifications

From: Wolfgang Lux
Subject: [bug #28104] NSNotificationQueue may loose notifications
Date: Fri, 27 Nov 2009 00:35:34 +0000
User-agent: Mozilla/5.0 (Macintosh; U; PowerPC Mac OS X 10_4_11; en-US) AppleWebKit/531.9+(KHTML, like Gecko, Safari/528.16) OmniWeb/v622.10.0


                 Summary: NSNotificationQueue may loose notifications
                 Project: GNUstep
            Submitted by: wlux
            Submitted on: Fr 27 Nov 2009 00:35:28 GMT
                Category: None
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any



Despite my recent fix to re-enable saving of menu positions in the user
defaults, I sometimes observe that positions are not saved. I've tracked down
the problem to the point that NSMenu enqueues a special notification on the
default NSNotificationQueue. The enqueued notification is supposed to be
posted with notification style NSPostASAP in NSDefaultRunLoop mode, i.e., 
after mouse tracking has ended and the menu has been put to its new position.

By setting appropriate breakpoints I could verify that GSPrivateNotifyASAP
and notifyASAP indeed are called. The problem is that notifyASAP (and ditto
notifyIdle) just takes every notification off the respective queue and passes
it on to _postNotification:forModes:. This method in turn posts the
notification if the run loop is in the correct mode and discards it otherwise,
which is obviously wrong. Either notifyASAP and notifyIdle should only take
notifications with a suitable run loop mode off their queues or
_postNotification:forModes: should be replaced by a method that pushes those
notifications which cannot be posted back onto the appropriate queue.


Reply to this item at:


  Nachricht geschickt von/durch Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]