
Hi Ken Many thanks for your reply. Sorry for not replying earlier - I seem to have lost some mail due to ISP problems, and I just noticed your message in the archive. I have not included your response, as I want to come at this from another angle. I confess that I am under pressure to 'get something working', even if it is not the optimal solution, and this is all getting a bit complicated. I have been experimenting with using a socket client instead of Twisted, and I got something up and running quite quickly. When I take a step back and look at how I got it working, I feel that I should be able to apply the same technique to Twisted, but I cannot get it to work. I will show both methods, and perhaps someone can point me in the right direction. The trick is that I have two threads running concurrently - a wxPython main loop, and a subthread that monitors the socket. The socket loop looks like this (simplified), subclassed from threading.Thread - def run(self): readable = [s.fileno()] error = [] self.sendData = [] while 1: if self.sendData: writable = [s.fileno()] else: writable = [] r,w,e = select.select(readable,writable,error,0.01) if r: self.recvData = s.recv(1024) if w: s.send(self.sendData.pop(0)) def checkData(self,item,value): # this is called from the *wx* thread self.recvData = None self.sendData.append(cPickle.dumps((CHECK,item,value))) while self.recvData is None: sleep(0.01) return self.recvData As you can see, checkData() blocks the wxPython thread until it receives a response from the socket thread. This is how I tried with Twisted - def checkData(self,item,value): # this is called from the *wx* thread self.recvData = None self.callCheckData(item,value) while self.recvData is None: sleep(0.01) return self.recvData def callCheckData(self,item,value): self.avatar.callRemote('checkData',item,value).addCallback(self.dataChecked) def dataChecked(self,answer): self.recvData = answer It looks as if it should work, but the server method 'perspective_checkData' never gets called. Is it possible to do anything like this? Thanks Frank Millman