aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_agent.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-07-16 02:25:53 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-07-16 02:25:53 +0000
commitb312710014650704476e9d7e7a22c6867719addd (patch)
tree3db486fd161b32e30221af0eb736b2ad22bc6dd4 /channels/chan_agent.c
parent32efcd0acc56f6fe0cc1c4fe91047fd9a58530a6 (diff)
Fix potential race in check_availability
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1191 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-xchannels/chan_agent.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 5031a35ad..77a8ba10e 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -605,7 +605,7 @@ static int check_availability(struct agent_pvt *newlyavailable, int needlock)
continue;
}
ast_pthread_mutex_lock(&p->lock);
- if (p->pending && ((p->group && (newlyavailable->group & p->group)) || !strcmp(p->agent, newlyavailable->agent))) {
+ if (!p->abouttograb && p->pending && ((p->group && (newlyavailable->group & p->group)) || !strcmp(p->agent, newlyavailable->agent))) {
ast_log(LOG_DEBUG, "Call '%s' looks like a winner for agent '%s'\n", p->owner->name, newlyavailable->agent);
/* We found a pending call, time to merge */
chan = agent_new(newlyavailable, AST_STATE_DOWN);