I've got a situation where I'm using stacklesssocket.py to talk over a chatty protocol (i.e. read/write with linefeeds in between each) - the client basically does stuff like:<br><br>s.sendall(outbuffer)<br><br>while "\n" not in outbuffer:
<br> outbuffer += s.recv(4096)<br><br>(There's obviously other code in there to deal with the data after the "\n" if any, but that's another story)<br><br>my theory is that stacklessocket is trying to keep reading up to 4096 bytes, even though the code only wants "up to" 4096 bytes.. so effectively recv gets blocked even though it has all its data.
<br><br>My first instinct was to interrupt the world and look at the state of running tasklets - basically do a stack dump of each tasklet and see where they're blocked.<br><br>I can't find anything in the stackless module that would support this. Any hints?
<br><br>Alec<br>