[omniORB] omniORBpy lock-up
   
    Eric C. Newton
     
    ecn@metaslash.com
       
    Sun, 8 Jul 2001 17:19:13 -0400
    
    
  
Platform:
    omniORBpy 1.4 (pre-built)
    Python 2.1
    WindowsME
    PIII/750
I've had a problem with the following code in
        omni/src/lib/omniORBpy/python/omniORB/__init__.py
on or about line 673:
    def delete(self):
        if self.add:
            for hook in self.hooks:
                hook(WTHREAD_DELETED, self)
            _thr_acq()
            del _thr_act[self.id]
            _thr_rel()
Sometimes there's a KeyError exception between the thr_acq and the
thr_rel.  Shortly after this occurs, my server locks up because the
lock is never released.
I changed the code to:
    def delete(self):
        if self.add:
            for hook in self.hooks:
                hook(WTHREAD_DELETED, self)
            try:
                try:
                    _thr_acq()
                    del _thr_act[self.id]
                finally:
                    _thr_rel()
            except:
                import traceback
                traceback.print_exc()
                raise
This only releases the lock and prints the error.  I'm not really sure
what's going on.  Never happens under Linux (RedHat 7.1) on the same
machine, but happens frequently on WindowsME.
-Eric