You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2016/01/08 22:22:24 UTC
qpid-dispatch git commit: DISPATCH-179 - Added connection-activation
linkage.
Repository: qpid-dispatch
Updated Branches:
refs/heads/tross-DISPATCH-179-1 1aa7fece4 -> 59cc7b53d
DISPATCH-179 - Added connection-activation linkage.
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/59cc7b53
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/59cc7b53
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/59cc7b53
Branch: refs/heads/tross-DISPATCH-179-1
Commit: 59cc7b53d072d151fa31b9b75edcaf6eb4f16ef9
Parents: 1aa7fec
Author: Ted Ross <tr...@redhat.com>
Authored: Fri Jan 8 16:21:54 2016 -0500
Committer: Ted Ross <tr...@redhat.com>
Committed: Fri Jan 8 16:21:54 2016 -0500
----------------------------------------------------------------------
src/router_core/connections.c | 8 +++++++-
src/router_core/forwarder.c | 4 ++--
src/router_core/router_core_private.h | 2 ++
src/router_node.c | 5 +++++
4 files changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/59cc7b53/src/router_core/connections.c
----------------------------------------------------------------------
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index f93051e..697b6ce 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -283,6 +283,12 @@ void qdr_connection_handlers(qdr_core_t *core,
// In-Thread Functions
//==================================================================================
+void qdr_connection_activate_CT(qdr_core_t *core, qdr_connection_t *conn)
+{
+ core->activate_handler(core->user_context, conn);
+}
+
+
static void qdr_connection_enqueue_work_CT(qdr_core_t *core,
qdr_connection_t *conn,
qdr_connection_work_t *work)
@@ -293,7 +299,7 @@ static void qdr_connection_enqueue_work_CT(qdr_core_t *core,
sys_mutex_unlock(conn->work_lock);
if (notify)
- core->activate_handler(core->user_context, conn);
+ qdr_connection_activate_CT(core, conn);
}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/59cc7b53/src/router_core/forwarder.c
----------------------------------------------------------------------
diff --git a/src/router_core/forwarder.c b/src/router_core/forwarder.c
index a7400af..85759b5 100644
--- a/src/router_core/forwarder.c
+++ b/src/router_core/forwarder.c
@@ -82,7 +82,7 @@ int qdr_forward_multicast_CT(qdr_core_t *core,
qdr_link_t *out_link = link_ref->link;
qdr_delivery_t *out_delivery = qdr_forward_new_delivery(in_delivery, out_link, msg);
DEQ_INSERT_TAIL(out_link->undelivered, out_delivery); // TODO - check locking on this list
- // TODO activate the connection for the out link
+ qdr_connection_activate_CT(core, out_link->conn);
fanout++;
link_ref = DEQ_NEXT(link_ref);
}
@@ -152,7 +152,7 @@ int qdr_forward_multicast_CT(qdr_core_t *core,
DEQ_INSERT_TAIL(dest_link->undelivered, out_delivery); // TODO - check locking on this list
fanout++;
addr->deliveries_transit++;
- // TODO - Activate link's connection
+ qdr_connection_activate_CT(core, dest_link->conn);
}
}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/59cc7b53/src/router_core/router_core_private.h
----------------------------------------------------------------------
diff --git a/src/router_core/router_core_private.h b/src/router_core/router_core_private.h
index aa9f3ee..8d80bf5 100644
--- a/src/router_core/router_core_private.h
+++ b/src/router_core/router_core_private.h
@@ -424,6 +424,8 @@ void qdr_post_link_lost_CT(qdr_core_t *core, int link_maskbit);
void qdr_post_general_work_CT(qdr_core_t *core, qdr_general_work_t *work);
void qdr_check_addr_CT(qdr_core_t *core, qdr_address_t *addr, bool was_local);
+void qdr_connection_activate_CT(qdr_core_t *core, qdr_connection_t *conn);
+
qdr_query_t *qdr_query(qdr_core_t *core,
void *context,
qd_router_entity_type_t type,
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/59cc7b53/src/router_node.c
----------------------------------------------------------------------
diff --git a/src/router_node.c b/src/router_node.c
index 08da120..1c7b0dd 100644
--- a/src/router_node.c
+++ b/src/router_node.c
@@ -554,6 +554,11 @@ qd_router_t *qd_router(qd_dispatch_t *qd, qd_router_mode_t mode, const char *are
static void qd_router_connection_activate(void *context, qdr_connection_t *conn)
{
+ //
+ // IMPORTANT: This is the only core callback that is invoked on the core
+ // thread itself. It is imperative that this function do nothing
+ // apart from setting the activation in the server for the connection.
+ //
qd_server_activate((qd_connection_t*) qdr_connection_get_context(conn));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org