timer_mutex not destroyed in pjsua_core.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After calling:

status = pjsua_create();
....
pjsua_destroy();

several times in a row, pjsua_create() started to return error:

21:50:03.003   pjsua_core.c  Unable to create mutex: Resource busy 
[status=120016]

It seems it happen because one of the mutexes was not destroyed. 
Applying the patch as bellow fix the issue.



After resolving the first issue I've got similar case in 
sip_transport.c. At some point this code returns status: "Resource busy".

     status = pj_lock_create_recursive_mutex(pool, "tmgr%p", &mgr->lock);
     if (status != PJ_SUCCESS)
         return status;

It looks like in some cases this mutex wasn't destroyed. It's not so 
obvious where. Please advise what can be wrong.


Thanks,
Dmitry


Index: pjsua_core.c
===================================================================
--- pjsua_core.c        (revision 4303)
+++ pjsua_core.c        (working copy)
@@ -1634,6 +1634,10 @@
         pj_mutex_destroy(pjsua_var.mutex);
         pjsua_var.mutex = NULL;
      }
+    if (pjsua_var.timer_mutex) {
+       pj_mutex_destroy(pjsua_var.timer_mutex);
+       pjsua_var.timer_mutex = NULL;
+    }

      /* Destroy pool and pool factory. */
      if (pjsua_var.pool) {



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux