mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -959,7 +959,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 */ | ||||
| }; | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user