From 8c5643b2f9c20a3467e059d1365464af81288575 Mon Sep 17 00:00:00 2001 From: "Eliel C. Sardanons" <eliels@gmail.com> Date: Wed, 13 May 2009 15:02:10 +0000 Subject: [PATCH] Do not lock the 'sessions' container, lock the allocated 'session'. There was a typo in the structure being locked, and we were locking the 'sessions' container instead of the 'session' structure thar we are modifying. Reported by seanbright on #asterisk-dev, thanks! git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@194283 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/manager.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/manager.c b/main/manager.c index 18e6b9bfad..b4067e9145 100644 --- a/main/manager.c +++ b/main/manager.c @@ -3376,7 +3376,6 @@ static void *session_do(void *data) if (session == NULL) { goto done; } - ao2_lock(sessions); flags = fcntl(ser->fd, F_GETFL); if (!block_sockets) { /* make sure socket is non-blocking */ @@ -3386,6 +3385,7 @@ static void *session_do(void *data) } fcntl(ser->fd, F_SETFL, flags); + ao2_lock(session); /* Hook to the tail of the event queue */ session->last_ev = grab_last(); @@ -3399,7 +3399,7 @@ static void *session_do(void *data) AST_LIST_HEAD_INIT_NOLOCK(&session->datastores); - ao2_unlock(sessions); + ao2_unlock(session); astman_append(&s, "Asterisk Call Manager/%s\r\n", AMI_VERSION); /* welcome prompt */ for (;;) { if ((res = do_message(&s)) < 0) { -- GitLab