Closed Bug 545336 Opened 14 years ago Closed 14 years ago

Win event loop message isn't unique per channel

Categories

(Core Graveyard :: Plug-ins, defect)

x86
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: jimm, Unassigned)

References

Details

gEventLoopMessage is registered as a global msg id, but is used to signal multiple channels via the same thread message queue. This can cause spurious wake ups in WaitForNotify for channels that don't have anything pending. We need to register unique events per, so each channel only looks for it's own signal message.

Old code didn't mind this, although events could go unprocessed. However with the new hang detection, this will abort, so it needs to be addressed.
An alternative might be to keep the global event id, and have channels store incoming events not meant for themselves in a global list. WaitForNotify could check the list on entry for event loop events aimed at it's channel, returning without waiting for incoming events if it found one. If no events were in the list for the channel, it would go into normal event loop processing.

This bug can probably be combine with bug 545338, since we'd have to do EventOccurred processing on the list as well.
We switched to using events in bug 545338.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INVALID
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.