You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2018/05/16 20:14:06 UTC

[08/12] qpid-dispatch git commit: DISPATCH-990: Fix locks so hostname adds are atomic

DISPATCH-990: Fix locks so hostname adds are atomic


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/2b0f3d06
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/2b0f3d06
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/2b0f3d06

Branch: refs/heads/master
Commit: 2b0f3d066428f5c13eed83848f017c39ca56f565
Parents: 9c0a09d
Author: Chuck Rolke <cr...@redhat.com>
Authored: Mon May 14 12:57:20 2018 -0400
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Mon May 14 12:57:20 2018 -0400

----------------------------------------------------------------------
 src/policy.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2b0f3d06/src/policy.c
----------------------------------------------------------------------
diff --git a/src/policy.c b/src/policy.c
index dec645e..9c99c88 100644
--- a/src/policy.c
+++ b/src/policy.c
@@ -838,17 +838,16 @@ bool qd_policy_host_pattern_add(qd_policy_t *policy, char *hostPattern)
 {
     sys_mutex_lock(policy->tree_lock);
     void *oldp = qd_parse_tree_add_pattern_str(policy->hostname_tree, hostPattern, hostPattern);
-    sys_mutex_unlock(policy->tree_lock);
     if (oldp) {
-        qd_log(policy->log_source,
-               QD_LOG_WARNING,
-               "vhost hostname pattern '%s' failed to replace optimized pattern '%s'",
-               hostPattern, oldp);
-        sys_mutex_lock(policy->tree_lock);
         void *recovered = qd_parse_tree_add_pattern_str(policy->hostname_tree, (char *)oldp, oldp);
-        sys_mutex_unlock(policy->tree_lock);
-        assert (recovered && !strcmp((char *)recovered, hostPattern));
+        assert (recovered);
     }
+    sys_mutex_unlock(policy->tree_lock);
+    if (oldp)
+        qd_log(policy->log_source,
+            QD_LOG_WARNING,
+            "vhost hostname pattern '%s' failed to replace optimized pattern '%s'",
+            hostPattern, oldp);
     return oldp == 0;
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org