Yes I am sure. I went over this with stakkars by changing this:

self.read_channel.send(self.sock.recv(bytes))

to

r = self.sock.recv(bytes)
print 'sock recv done'
self.read_channel.send(r)

Also, sorry about the send. I meant that I could receive() from the channel..

(Pdb) f.f_locals['self'].read_channel.receive()
recv end
*** TaskletExit:

But now I realize that both send and receive both result in TaskletExit.

2010/2/5 Kristján Valur Jónsson <[email protected]>:
> Are you sure that the tasklet isn't simply blocked in the self.sock.recv()?
> channel balance is in all likelyhood not broken.  So much else would break if 
> that were true.  And the fact that you could send() to the channel from gdb, 
> shows that someone was listening.
> K
>
>> -----Original Message-----
>> From: [email protected] [mailto:stackless-
>> [email protected]] On Behalf Of Bot Tiger
>> Sent: 5. febrúar 2010 01:57
>> To: [email protected]
>> Subject: [Stackless] Channel Balance Error
>>
>> I was attempting to fix the pyevent stackless nonblocking socket module
>> here:
>> http://code.google.com/p/stacklessexamples/wiki/StacklessNonblockModule
>> s
>>
>> I ran into a problem where the channel balance was incorrect. A
>> threadlet is blocked trying to send on line 215 when the channel
>> balance is -1. Using pdb and executing send unblocks the channel. When
>> weakref was removed, the problem went away.
>>
>> Stakkars thought I should post on the mailing list so here it is.
>>
>> http://codepad.org/TWa68adr
>
> _______________________________________________
> Stackless mailing list
> [email protected]
> http://www.stackless.com/mailman/listinfo/stackless
>

_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to