mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	chan_sip.c: Made sip_reinvite_retry() call sip_pvt_lock_full().
Change-Id: I90f04208a089f95488a2460185a8dbc3f6acca12
This commit is contained in:
		| @@ -22889,18 +22889,14 @@ static int sip_reinvite_retry(const void *data) | ||||
| 	struct sip_pvt *p = (struct sip_pvt *) data; | ||||
| 	struct ast_channel *owner; | ||||
| 
 | ||||
| 	sip_pvt_lock(p); /* called from schedule thread which requires a lock */ | ||||
| 	while ((owner = p->owner) && ast_channel_trylock(owner)) { | ||||
| 		sip_pvt_unlock(p); | ||||
| 		usleep(1); | ||||
| 		sip_pvt_lock(p); | ||||
| 	} | ||||
| 	owner = sip_pvt_lock_full(p); | ||||
| 	ast_set_flag(&p->flags[0], SIP_NEEDREINVITE); | ||||
| 	p->waitid = -1; | ||||
| 	check_pendings(p); | ||||
| 	sip_pvt_unlock(p); | ||||
| 	if (owner) { | ||||
| 		ast_channel_unlock(owner); | ||||
| 		ast_channel_unref(owner); | ||||
| 	} | ||||
| 	dialog_unref(p, "unref the dialog ptr from sip_reinvite_retry, because it held a dialog ptr"); | ||||
| 	return 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user