You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Steve Huston (JIRA)" <qp...@incubator.apache.org> on 2008/08/15 17:01:45 UTC

[jira] Commented: (QPID-1160) Mutex/Lock avoidance in management agent interface

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

Steve Huston commented on QPID-1160:
------------------------------------

As part of the Windows port I added a QPID_TSS macro to qpid/sys/Thread.h ala:

#ifdef _WIN32
#  define QPID_TSS __declspec(thread)
#elif defined (gcc)
#  define QPID_TSS __thread
#else
#  define QPID_TSS
#endif

It goes against the guideline for not doing platform-specific ifdefs, but does solve the problem for these two compilers. Is this acceptable?


> Mutex/Lock avoidance in management agent interface
> --------------------------------------------------
>
>                 Key: QPID-1160
>                 URL: https://issues.apache.org/jira/browse/QPID-1160
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Broker
>    Affects Versions: M3
>            Reporter: Ted Ross
>            Assignee: Ted Ross
>            Priority: Minor
>             Fix For: M3
>
>
> For management purposes, the C++ broker tracks statistics per-queue, exchange, and binding.  These statistics counters are necessarily incremented in the message forwarding fast-path and therefore must have very low performance cost.
> There is an issue with the multi-threaded nature of the C++ broker in that counter increments must be thread-safe or else they will become corrupt in a short time.  The current code base uses mutexes to protect the counters but this defeats the benefit of having multiple worker threads because counter contention causes the threads to stall while waiting for one another.
> This issue has been created to track the fix for this performance problem in the broker.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.