<div id="RTEContent">Hi!<br>  <br>  I encountered two problems when using threadedselectreactor on win32. I  am not versed enough with reactor technicalities to resolve them  myself, but I would gladly conduct any tests the experts recommend.<br>  <br>  1. I often get tracebacks similar to this:<br>  &nbsp;&nbsp;&nbsp; &nbsp; File  "C:\Python23\Lib\site-packages\twisted\internet\threadedselectreactor.py",  line 299, in _doReadOrWrite<br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; why = getattr(selectable, method)()<br>  &nbsp;&nbsp;&nbsp; &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\abstract.py", line 108, in doWrite<br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; l = self.writeSomeData(self.dataBuffer)<br>  &nbsp;&nbsp;&nbsp; &nbsp; File "C:\Python23\lib\site-packages\twisted\internet\tcp.py", line 358, in writeSomeData<br>  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return self.socket.send(buffer(data, 0, self.SEND_LIMIT))<br>  &nbsp;&nbsp;&nbsp; exceptions.AttributeError:
 'Server' object has no attribute 'socket'<br>  <br>  To my understanding, this can only happen if the Server's  connectionLost method had been called before the exception happened,  but for some reason, writeSomeData (or sometimes another method) was  still called. I hypothesize that the Server should have been removed  from some list or another but wasn't, and that this is the reactor's  responsibility.<br>  <br>  2. Sometimes I get this error:<br>  Traceback (most recent call last):<br>  &nbsp; File "C:\Python23\Lib\site-packages\wx-2.6-msw-unicode\wx\_core.py", line 7493, in MainLoop<br>  &nbsp;&nbsp;&nbsp; wx.PyApp.MainLoop(self)<br>  &nbsp; File "C:\Python23\Lib\site-packages\wx-2.6-msw-unicode\wx\_core.py", line 6926, in MainLoop<br>  &nbsp;&nbsp;&nbsp; return _core_.PyApp_MainLoop(*args, **kwargs)<br>  &nbsp; File "C:\Python23\Lib\site-packages\wx-2.6-msw-unicode\wx\_core.py", line 13266, in &lt;lambda&gt;<br>  &nbsp;&nbsp;&nbsp; lambda event: event.callable(*event.args,
 **event.kw) )<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\threadedselectreactor.py", line 241, in _interleave<br>  &nbsp;&nbsp;&nbsp; self.runUntilCurrent()<br>  --- &lt;exception caught here&gt; ---<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\base.py", line 541, in runUntilCurrent<br>  &nbsp;&nbsp;&nbsp; call.func(*call.args, **call.kw)<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\task.py", line 91, in __call__<br>  &nbsp;&nbsp;&nbsp; self._reschedule()<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\task.py", line 108, in _reschedule<br>  &nbsp;&nbsp;&nbsp; self.call = reactor.callLater(delay, self)<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\threadedselectreactor.py", line 116, in callLater<br>  &nbsp;&nbsp;&nbsp; self.wakeUp()<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\threadedselectreactor.py", line 112, in wakeUp<br>  &nbsp;&nbsp;&nbsp;
 self.waker.wakeUp()<br>  &nbsp; File "C:\Python23\Lib\site-packages\twisted\internet\posixbase.py", line 85, in wakeUp<br>  &nbsp;&nbsp;&nbsp; self.w.send('x')<br>  socket.error: (10055, 'No buffer space available')<br>  <br>  This doesn't seem to be a threadedselectreactor problem, but rather a  problem that stems from it's use with arbitrary event loops. I suspect  that it happens when the main thread doesn't respond for some time. I  think that the best way to deal with it is simply to ignore this error  (in wakeUp), because if the buffer is full, then the main thread  already knows (or about to find out) that it needs to wake up, although  maybe the user should be somehow notified that there is a problem (log  message?).<br>  <br>  Thanks,<br>  <br>  Antony Kummel<br>  </div><p>
                <hr size=1> <B>Yahoo! Personals</B><BR> 
Single? There's someone we'd like you to meet.<BR> 
Lots of someones, actually. <a href="http://us.rd.yahoo.com/evt=36108/*http://personals.yahoo.com 
">Yahoo! Personals</a>