fix race condition
authorKevin P. Fleming <kpfleming@digium.com>
Thu, 25 Aug 2005 18:30:02 +0000 (18:30 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Thu, 25 Aug 2005 18:30:02 +0000 (18:30 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6408 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_externalivr.c

index f54c0ec..4bfa62b 100755 (executable)
@@ -387,7 +387,7 @@ static int app_exec(struct ast_channel *chan, void *data)
                                if (f->frametype == AST_FRAME_DTMF) {
                                        send_child_event(child_events, f->subclass, NULL, chan);
                                        if (u->option_autoclear) {
-                                               if (!u->playing_silence)
+                                               if (!u->list_cleared && !u->playing_silence)
                                                        send_child_event(child_events, 'T', NULL, chan);
                                                AST_LIST_LOCK(&u->playlist);
                                                while ((entry = AST_LIST_REMOVE_HEAD(&u->playlist, list))) {
@@ -431,7 +431,7 @@ static int app_exec(struct ast_channel *chan, void *data)
                                                send_child_event(child_events, 'Z', NULL, chan);
                                                strcpy(&input[2], "exception");
                                        }
-                                       if (!u->playing_silence)
+                                       if (!u->list_cleared && !u->playing_silence)
                                                send_child_event(child_events, 'T', NULL, chan);
                                        AST_LIST_LOCK(&u->playlist);
                                        while ((entry = AST_LIST_REMOVE_HEAD(&u->playlist, list))) {