diff options
author | Richard Mudgett <rmudgett@digium.com> | 2016-03-08 15:08:19 -0600 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2016-03-16 14:53:00 -0500 |
commit | 98d5669c280dbf5ffcd8a0431aa44e7f465fcefe (patch) | |
tree | 4e30ac215eefb239b1bad83f0a843e3c10e7243a /channels/sip/include | |
parent | 9cb8f73226126db70bac54fd7af8093ab05ffd6f (diff) |
chan_sip.c: Fix session timers deadlock potential.
This patch is part of a series to resolve deadlocks in chan_sip.c.
Stopping a scheduled event can result in a deadlock if the scheduled event
is running when you try to stop the event. If you hold a lock needed by
the scheduled event while trying to stop the scheduled event then a
deadlock can happen. The general strategy for resolving the deadlock
potential is to push the actual starting and stopping of the scheduled
events off onto the scheduler/do_monitor() thread by scheduling an
immediate one shot scheduled event. Some restructuring may be needed
because the code may assume that the start/stop of the scheduled events is
immediate.
ASTERISK-25023
Change-Id: I6d65269151ba95e0d8fe4e9e611881cde2ab4900
Diffstat (limited to 'channels/sip/include')
-rw-r--r-- | channels/sip/include/sip.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/channels/sip/include/sip.h b/channels/sip/include/sip.h index 82f208c77..c995ff198 100644 --- a/channels/sip/include/sip.h +++ b/channels/sip/include/sip.h @@ -952,7 +952,6 @@ struct sip_st_dlg { int st_cached_max_se; /*!< Session-Timers cached Session-Expires */ enum st_mode st_cached_mode; /*!< Session-Timers cached M.O. */ enum st_refresher st_cached_ref; /*!< Session-Timers session refresher */ - unsigned char quit_flag:1; /*!< Stop trying to lock; just quit */ }; |