qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Commented: (QPID-1982) QMF ResilientConnection notifyFd feature portability
Date Wed, 06 Jan 2010 15:57:55 GMT

    [ https://issues.apache.org/jira/browse/QPID-1982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12797149#action_12797149
] 

Alan Conway commented on QPID-1982:
-----------------------------------

We already have portable constructs for this type of notification.

sys::PollableCondition is a low-level, portable mechanism that can be added to a Poller and
allows you to wake a poller thread by setting the condition.

sys::PollableQueue template is built on top of pollable condition. It allows dispatch to poller
threads via an in-memory queue. 

I suspect PollableQueue is what's needed: replacing the use of ::write with a push to the
pollable queue. If not a new portable mechansim can probably be built based on PollableCondition.

> QMF ResilientConnection notifyFd feature portability
> ----------------------------------------------------
>
>                 Key: QPID-1982
>                 URL: https://issues.apache.org/jira/browse/QPID-1982
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Qpid Managment Framework
>    Affects Versions: 0.5
>         Environment: Windows
>            Reporter: Steve Huston
>
> The QMF's C++ qmfcommon ResilientConnection class has a setNotifyFd (int fd) method.
The docs say this can receive a file descriptor that is written on when certain events take
place, supposedly so the other end of the channel can listen, select, etc. and be notified
of some event.
> This construct isn't portable, both because of the datatype of the fd (int is not necessarily
a legit handle type everywhere) and because the code assumes a write() will work. The code
can be abstracted out to get rid of the write() easily enough, but what is the usage for this
facility? There are no calls to setNotifyFd() that I can find outside of the library containing
the implementation. So I can't tell if this is something that can be replaced by qpid::sys::PollableCondition
or not.
> What is the use case for this, and how can we make this portable? Different IPC type?
Callback to some private hook?

-- 
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:dev-subscribe@qpid.apache.org


Mime
View raw message