summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2010-06-07 18:59:27 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2010-06-07 18:59:27 +0000
commitde625d9c08f67982c16881282006282ea445a681 (patch)
tree3f109485ae04b96afd361dff0c95ce9312b67803 /main
parent1bc478656edb7d25a2765fb698c26f612e83f085 (diff)
Event well was going dry.
(issue #17234) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268731 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/manager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/main/manager.c b/main/manager.c
index bf08e7ef1..283a8410c 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -1064,6 +1064,11 @@ static void purge_events(void)
}
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&all_events, ev, eq_next) {
+ /* Never release the last event */
+ if (!AST_RWLIST_NEXT(ev, eq_next)) {
+ break;
+ }
+
/* 2.5 times whatever the HTTP timeout is (maximum 2.5 hours) is the maximum time that we will definitely cache an event */
if (ev->usecount == 0 && ast_tvdiff_sec(now, ev->tv) > (httptimeout > 3600 ? 3600 : httptimeout) * 2.5) {
AST_RWLIST_REMOVE_CURRENT(eq_next);