mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
FS-10026: [mod_verto] reduce attach_wake calls #resolve
This commit is contained in:
parent
a3ee7595bb
commit
cbc8d23603
@ -1245,6 +1245,7 @@ static void attach_calls(jsock_t *jsock)
|
|||||||
static void detach_calls(jsock_t *jsock)
|
static void detach_calls(jsock_t *jsock)
|
||||||
{
|
{
|
||||||
verto_pvt_t *tech_pvt;
|
verto_pvt_t *tech_pvt;
|
||||||
|
int wake = 0;
|
||||||
|
|
||||||
switch_thread_rwlock_rdlock(verto_globals.tech_rwlock);
|
switch_thread_rwlock_rdlock(verto_globals.tech_rwlock);
|
||||||
for(tech_pvt = verto_globals.tech_head; tech_pvt; tech_pvt = tech_pvt->next) {
|
for(tech_pvt = verto_globals.tech_head; tech_pvt; tech_pvt = tech_pvt->next) {
|
||||||
@ -1266,10 +1267,12 @@ static void detach_calls(jsock_t *jsock)
|
|||||||
switch_core_session_stop_media(tech_pvt->session);
|
switch_core_session_stop_media(tech_pvt->session);
|
||||||
tech_pvt->detach_time = switch_epoch_time_now(NULL);
|
tech_pvt->detach_time = switch_epoch_time_now(NULL);
|
||||||
verto_globals.detached++;
|
verto_globals.detached++;
|
||||||
attach_wake();
|
wake = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch_thread_rwlock_unlock(verto_globals.tech_rwlock);
|
switch_thread_rwlock_unlock(verto_globals.tech_rwlock);
|
||||||
|
|
||||||
|
if (wake) attach_wake();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void process_jrpc_response(jsock_t *jsock, cJSON *json)
|
static void process_jrpc_response(jsock_t *jsock, cJSON *json)
|
||||||
@ -2107,12 +2110,13 @@ static void track_pvt(verto_pvt_t *tech_pvt)
|
|||||||
static void untrack_pvt(verto_pvt_t *tech_pvt)
|
static void untrack_pvt(verto_pvt_t *tech_pvt)
|
||||||
{
|
{
|
||||||
verto_pvt_t *p, *last = NULL;
|
verto_pvt_t *p, *last = NULL;
|
||||||
|
int wake = 0;
|
||||||
|
|
||||||
switch_thread_rwlock_wrlock(verto_globals.tech_rwlock);
|
switch_thread_rwlock_wrlock(verto_globals.tech_rwlock);
|
||||||
if (tech_pvt->detach_time) {
|
if (tech_pvt->detach_time) {
|
||||||
verto_globals.detached--;
|
verto_globals.detached--;
|
||||||
tech_pvt->detach_time = 0;
|
tech_pvt->detach_time = 0;
|
||||||
attach_wake();
|
wake = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(p = verto_globals.tech_head; p; p = p->next) {
|
for(p = verto_globals.tech_head; p; p = p->next) {
|
||||||
@ -2128,6 +2132,8 @@ static void untrack_pvt(verto_pvt_t *tech_pvt)
|
|||||||
last = p;
|
last = p;
|
||||||
}
|
}
|
||||||
switch_thread_rwlock_unlock(verto_globals.tech_rwlock);
|
switch_thread_rwlock_unlock(verto_globals.tech_rwlock);
|
||||||
|
|
||||||
|
if (wake) attach_wake();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_endpoint_interface_t *verto_endpoint_interface = NULL;
|
switch_endpoint_interface_t *verto_endpoint_interface = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user