diff options
| author | Ted Ross <tross@apache.org> | 2008-06-30 19:00:49 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2008-06-30 19:00:49 +0000 |
| commit | 5a848a6a699d5ab8de93a646a44614378e56871f (patch) | |
| tree | e2a15b5ad2dd1a30e206601dc8f6902ea875f2e7 /cpp/src/qpid/broker/Bridge.cpp | |
| parent | 258cccda74ffaa478366bfacda07e61bd88b20ec (diff) | |
| download | qpid-python-5a848a6a699d5ab8de93a646a44614378e56871f.tar.gz | |
QPID-1160 - Per-thread counters in management API to avoid locking
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@672864 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Bridge.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Bridge.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/cpp/src/qpid/broker/Bridge.cpp b/cpp/src/qpid/broker/Bridge.cpp index 18b2c52dad..9274de0555 100644 --- a/cpp/src/qpid/broker/Bridge.cpp +++ b/cpp/src/qpid/broker/Bridge.cpp @@ -38,13 +38,17 @@ namespace broker { Bridge::Bridge(Link* _link, framing::ChannelId _id, CancellationListener l, const management::ArgsLinkBridge& _args) : link(_link), id(_id), args(_args), - mgmtObject(new management::Bridge(this, link, id, args.i_durable, args.i_src, args.i_dest, - args.i_key, args.i_srcIsQueue, args.i_srcIsLocal, - args.i_tag, args.i_excludes)), listener(l), name(Uuid(true).str()), persistenceId(0) { - if (!args.i_durable) - management::ManagementAgent::getAgent()->addObject(mgmtObject); + ManagementAgent::shared_ptr agent = ManagementAgent::getAgent(); + if (agent.get() != 0) { + mgmtObject = management::Bridge::shared_ptr + (new management::Bridge(agent.get(), this, link, id, args.i_durable, args.i_src, args.i_dest, + args.i_key, args.i_srcIsQueue, args.i_srcIsLocal, + args.i_tag, args.i_excludes)); + if (!args.i_durable) + agent->addObject(mgmtObject); + } } Bridge::~Bridge() |
