Dirk Meyer wrote:
> Duncan Webb wrote:
>> Author: duncan
>> Date: Tue Mar 31 12:06:58 2009
>> New Revision: 11375
>>
>> Log:
>> Traceback on shutdown from kaa
>> Fix applied, actually this does not fix the bug but stops the stack trace
> 
> I wanted to fix that, too, but I wondered about the code:
> 
>> Modified: branches/rel-1/freevo/src/tv/plugins/livepause/backend.py
>> ==============================================================================
>> --- branches/rel-1/freevo/src/tv/plugins/livepause/backend.py        
>> (original)
>> +++ branches/rel-1/freevo/src/tv/plugins/livepause/backend.py        Tue Mar 
>> 31 12:06:58 2009
>> @@ -191,7 +191,7 @@
>>          if inprogress is None:
>>              return False
>>          inprogress.wait()
>> -        result = inprogress.get_result()
>> +        result = inprogress.result
>>          return result
> 
> replace the last four lines with
> | return inprogress.wait()

Nice.

>> Modified: branches/rel-1/freevo/src/tv/record_client.py
>> ==============================================================================
>> --- branches/rel-1/freevo/src/tv/record_client.py    (original)
>> +++ branches/rel-1/freevo/src/tv/record_client.py    Tue Mar 31 12:06:58 2009
>> @@ -103,7 +103,7 @@
>>          print self.timeit(now)+': pingCo.inprogress=%r' % inprogress
>>          yield inprogress
>>          print self.timeit(now)+': pingCo.inprogress=%r' % inprogress
>> -        yield inprogress.get_result()
>> +        yield inprogress.result
>>          print self.timeit(now)+': pingCo finished' # we never get here
> 
> Do you ever see the 'print'? I guess yield inprogress.result will just
> return the result and stop the coroutine. The same is true for other
> parts of the patch.

Changing "yield inprogress.result" to "result = inprogress.result" does
the trick, so now this is shown:

./freevo --execute=src/tv/record_client.py pingco
function='pingco' args=[]
0.000: pingCo started
0.003: pingCo.inprogress=<kaa.async.InProgress object at 0xb68bf74c>
0.013: pingCo.inprogress=<kaa.async.InProgress object at 0xb68bf74c>
0.015: pingCo finished=True
0.019: pingCo=None

This not quite correct as I would like the result of the pingCo to be
obtained. How do we do this now?

>> @@ -179,12 +179,12 @@
>>          if not inprogress:
>>              return
>>          yield inprogress
>> -        yield inprogress.get_result()
>> +        yield inprogress.result
>>          inprogress = self._recordserver_rpc('findNextProgram')
>>          if not inprogress:
>>              return
>>          yield inprogress
>> -        nextstart = inprogress.get_result()
>> +        nextstart = inprogress.result
> 
> And this looks wrong. Like above, yield inprogress.result should stop
> the coroutine. The findNextProgram should never be called.

This is correct findNextProgram is not called. What is the correct way
to call this; Doing the same as with pingWait does work but may not be
the best method?

>>      def pingNow(self):
>> @@ -194,7 +194,7 @@
>>          if inprogress is None:
>>              return False
>>          inprogress.wait()
>> -        result = inprogress.get_result()
>> +        result = inprogress.result
>>          _debug_('pingNow.result=%r' % (result,), 2)
>>          return result
> 
> Like the first case: return inprogress.wait(). The same is true for the
> next functions.

This one does write the debug message to the log, changing this to a
print shows:

# ./freevo --execute=src/tv/record_client.py pingnow
function='pingnow' args=[]
pingNow.result=True
0.014: result=True

Thanks for this
Duncan

------------------------------------------------------------------------------
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to