Skip to content

memory leak in twotp #4

Description

@springstar

I write my server as a backend to receive message from erlang node with twotp, it's simply a echo like server but without echo back,i found RES in top inreased continuously,code like below

class EventLoop(object): def **init**(self, node_name, proc_name, server): self.server = server print node_name, proc_name cookie = readCookie() nodeName = buildNodeName(node_name) log.startLogging(sys.stdout) self.connection_mgr = ConnectionManager() self.process = Process(nodeName, cookie) self.process.register(proc_name) self.process.listen().addCallback(lambda x:self._recv_msg(self.process))
def Loop(self):                                                                                                                                                                                         
    lc = LoopingCall(self.server.process_async_tasks)                                                                                                                                                   
    lc.start(0.02)                                                                                                                                                                                      
    reactor.run()  

# receive message from erlang node                                                                                                                                                                                                      
def _recv_msg(self, process):                                                                                                                                                                           
    def _recv_cb(response):                                                                                                                                                                            
        msg_type = response[1]                                                                                                                                                                          
        msg = response[2].value                                                                                                                                                                         
        identifier = response[0]    

       # nothing to do in DispatchMessage                                                                                                                                       
        self.server.msg_dispatcher.DispatchMessage(identifier, msg_type, msg)                                                                                                                                                            

    def _error_cb(error):                                                                                                                                                                               
        pass   

    return self.process.receive().addCallback(_recv_cb).addCallback(_error_cb).
                                    addBoth(lambda x: self._recv_msg(self.process))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions