Jason Tackaberry wrote: > On Sun, 2008-02-17 at 12:35 +0100, Duncan Webb wrote: >> kaa.notifier.async.AsyncException: Exception raised asynchronously; >> traceback follows: >> File "../base/build/lib.linux-i686-2.4/kaa/notifier/coroutine.py", >> line 203, in _step >> File "/usr/lib/python2.4/site-packages/freevo/tv/epg_types.py", line >> 121, in __cmp__ >> return self.title != other.title or \ >> AttributeError: 'object' object has no attribute 'title' >> >> >> Now I see where the error comes from but not why the __cmp__() is being >> called. > > The coroutine wrapper must check the result of the coroutine to see if > it's kaa.NotFinished or not. If it is, it will schedule the coroutine > (or rather its underlying generator) to be called again. If not, it > finishes the InProgress it returned with the value. > > Here is the relevant code from coroutine.py: > > result = _process(self._coroutine, self._async) > if isinstance(result, InProgress): > self._async = result > if not result.is_finished(): > # continue when InProgress is done > self._async = result > result.connect_both(self._continue, self._continue) > return False > elif result == NotFinished: > # schedule next iteration with the timer > return True > else: > # coroutine is done > break > > So the result your function is returning is being compared with > kaa.NotFinished, hence the call to __cmp__.
So this means that I should keep yielding until inprogress.finish is not True? Thanks Duncan ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Freevo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freevo-devel
