[
https://issues.apache.org/jira/browse/QPID-1666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674808#action_12674808
]
Alan Conway commented on QPID-1666:
-----------------------------------
Fiddling complete, the simpler version didn't work out. I think is good reason
for distinguishing arm/disarm and set/clear.
set/clear is about whether or not there's _work to be done_ in whatever
PollableThing we're trying to implement (e.g. PollableQueue is non-empty) They
may be called by arbitrary non-poller threads based on whatever PollableThing
criteria.
arm/disarm is about whether or not we are _currently doing work_ - it's purpose
is to prevent the Poller from running callbacks in multiple threads. Hence we
are automatically disarmed when the callback is called and it's up to the
PollableThing to decide to rearm. They are not called by arbitrary threads -
only the callback thread calls rearm, and disarm is only for finalization when
things are shutting down.
I still have a nagging feeling we should be able to make this simpler, but for
now I say commit it, it's better than what's there now.
> Refactor PollableQueue and PollableCondition to allow porting
> -------------------------------------------------------------
>
> Key: QPID-1666
> URL: https://issues.apache.org/jira/browse/QPID-1666
> Project: Qpid
> Issue Type: Improvement
> Components: C++ Broker
> Reporter: Steve Huston
> Fix For: M5
>
> Attachments: pollable.diff
>
>
> The qpid::sys::PollableQueue and qpid::sys::PollableCondition classes contain
> constructs not portable to Windows. In order to port these to Windows, I'd
> like to refactor these classes to move the Linux-specific pieces down to the
> posix level.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]