[Bug 358145] [NEW] QtReactor bug, unable to remove WRITE handler

Matt mwlazlo at gmail.com
Thu Apr 9 02:02:28 UTC 2009


Public bug reported:

Binary package hint: libace-qtreactor-5.6.3

In my program's output_handler() function, if my output buffer is empty
or becomes empty after the send(), I call ACE_Reactor::remove_handler()
to be taken off the notification list for writing. Unfortunately, this
does not work because ACE continues to repeatedly call output_handler().

The QtReactor code seems to turn the handler's associated
QSocketNotifier on or off depending on what
ACE_Select_Reactor_Handle_Set (wait_set_ and suspend_set_) is passed to
QtReactor::bit_ops() [see patch]. The problem arises because when the
user passes in CLR_MASK, QtReactor::bit_ops() is called twice in
succession with wait_set_ and suspend_set_ respectively as arguments -
effectively turning the QtSocketNotifier off then on again.

Patch and testcase attached.

** Affects: ace (Ubuntu)
     Importance: Undecided
         Status: New

-- 
QtReactor bug, unable to remove WRITE handler
https://bugs.launchpad.net/bugs/358145
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs at lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs




More information about the universe-bugs mailing list