[ 
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]

Reply via email to