Ignore:
Timestamp:
Jul 21, 2008 10:46:35 PM (11 years ago)
Author:
bennylp
Message:

Added sleep() in python handle events to avoid starvation in the main thread

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip-apps/src/python/pjsua.py

    r2163 r2165  
    153153import threading 
    154154import weakref 
     155import time 
    155156 
    156157class Error: 
     
    20852086        self._lck = lck 
    20862087        self._lck.acquire() 
    2087         #print 'lck acquire' 
     2088        #_Trace(('lock acquired',)) 
    20882089 
    20892090    def __del__(self): 
    2090         self._lck.release() 
    2091         #print 'lck release' 
     2091        try: 
     2092            self._lck.release() 
     2093            #_Trace(('lock released',)) 
     2094        except: 
     2095            #_Trace(('lock release error',)) 
     2096            pass 
    20922097 
    20932098 
     
    21162121        _pjsua.destroy() 
    21172122        del self._lock 
    2118         print 'Lib destroyed' 
     2123        _Trace(('Lib destroyed',)) 
    21192124 
    21202125    def __str__(self): 
     
    21682173            loop = 0 
    21692174            while self._quit != 2 and loop < 400: 
    2170                 self.handle_events(50) 
     2175                self.handle_events(5) 
    21712176                loop = loop + 1 
     2177                time.sleep(0.050) 
    21722178        _pjsua.destroy() 
    21732179        _lib = None 
     
    21812187 
    21822188        """ 
     2189        lck = self.auto_lock() 
    21832190        err = _pjsua.start() 
    21842191        self._err_check("start()", self, err) 
     
    28502857def _worker_thread_main(arg): 
    28512858    global _lib 
     2859    _Trace(('worker thread started..',)) 
    28522860    thread_desc = 0; 
    28532861    err = _pjsua.thread_register("python worker", thread_desc) 
    28542862    _lib._err_check("thread_register()", _lib, err) 
    28552863    while _lib and _lib._quit == 0: 
    2856         _lib.handle_events(50) 
     2864        _lib.handle_events(1) 
     2865        time.sleep(0.050) 
    28572866    if _lib: 
    28582867        _lib._quit = 2 
     2868    _Trace(('worker thread exited..',)) 
    28592869 
    28602870def _Trace(args): 
     
    28642874            print arg, 
    28652875        print " **" 
     2876 
Note: See TracChangeset for help on using the changeset viewer.