diff options
author | Mark Michelson <mmichelson@digium.com> | 2015-11-11 17:11:53 -0600 |
---|---|---|
committer | Mark Michelson <mmichelson@digium.com> | 2015-11-12 11:39:41 -0500 |
commit | 264c74aa22aca7dffdf054ca1512a3638f3fc6dc (patch) | |
tree | 751ee9be5d225c76a5bbc341ad3ea9393929c149 /main/threadpool.c | |
parent | 469ad02404abeadd6f9594113e811a8840312f47 (diff) |
res_pjsip: Deny requests when threadpool queue is backed up.
We have observed situations where the SIP threadpool may become
deadlocked. However, because incoming traffic is still arriving, the SIP
threadpool's queue can continue to grow, eventually running the system
out of memory.
This change makes it so that incoming traffic gets rejected with a 503
response if the queue is backed up too much.
Change-Id: I4e736d48a2ba79fd1f8056c0dcd330e38e6a3816
Diffstat (limited to 'main/threadpool.c')
-rw-r--r-- | main/threadpool.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/main/threadpool.c b/main/threadpool.c index 46de9b7f8..60e1e9a3b 100644 --- a/main/threadpool.c +++ b/main/threadpool.c @@ -1397,3 +1397,8 @@ struct ast_taskprocessor *ast_threadpool_serializer(const char *name, struct ast { return ast_threadpool_serializer_group(name, pool, NULL); } + +long ast_threadpool_queue_size(struct ast_threadpool *pool) +{ + return ast_taskprocessor_size(pool->tps); +} |