Re: This routine cannot be called because another command structure has results pending

Don Chance <[email protected]> Mon, 10 Jul 2006 20:11:44 +0000
Newsgroups gmane.comp.python.sybase
Organization STScI
Message-ID <[email protected]>
I tried the "_close_fetcher" solution, but it has caused other problems.
Specifically, it throws off the lock count and I end up getting:

     AssertionError: release() of un-acquire()d lock

What has been working for me is simply clearing the command once the lock
count reaches zero.  Here is what my version of _FetchLazy._unlock looks like:

     def _unlock(self):
         self._lock_count = self._lock_count - 1
         _ctx.debug_msg('_unlock: count -> %d\n' % self._lock_count)
         #!!! Added by DRC: Once there are no more locks, clear the command
         if self._lock_count == 0:
             status = self._cmd.ct_cancel(CS_CANCEL_ALL)
         #!!!
         self._owner._unlock()

-- 
+++++++++++++++++++++++++++++++++
Don Chance
Computer Sciences Corp.
Space Telescope Science Institute
3700 San Martin Drive
Baltimore, MD 21218
410-338-4941
+++++++++++++++++++++++++++++++++