New submission from Srikantha Kadur <srikanthka...@gmail.com>: Here is my code.
Func1(): . . CliSock, addr = ServSocket.accept() print 'DataPortServ:Connected by', addr data.DataSendSock = CliSock for cnt in range(data.ThreadCnt): SessionId = startSessionId + SessionIdCnt* cnt thread.start_new_thread(ThreadHandleDataPort,(("Thead"+str(cnt)),data,EventCnt[cnt],EventCnt[cnt+1],UECntPerThread,ip,SessionId)) time.sleep(0.005) ThreadHandleDataPort(args): #here i use socket.sendall while True: if ( 3 != data.bRunFlag): if (len(data.AddedEvents) != 0) | (len(data.AddedReasons) != 0): #time.sleep(5) for EventCnt in range(StartEvent,StopEvent): . . . data.DataSendSock.sendall(SendEvent) . . My application is a server and it accepts connection from the client on a port and start sending some messages to the client. While sending messages i use multiple threads for the same socket based on required traffic. I do not modify any global variables but i read only global variables.But at high Loads my messages are being corrupted, here is the snippet of the corruption actual message should have been ABS1,1328577019.57,181138955, instead im getting ABS1,1329218634.91,181ABS1 so here is my Q: Do i need to lock the socket before sending inside the threads or Python modules will take care of it? Please suggest. ---------- components: 2to3 (2.x to 3.x conversion tool) messages: 153361 nosy: srikadur priority: normal severity: normal status: open title: Usage of socket.sendall() in multiple threads type: behavior _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14016> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com