homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Usage of socket.sendall() in multiple threads
Type: behavior Stage:
Components: 2to3 (2.x to 3.x conversion tool) Versions:
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: r.david.murray, srikadur
Priority: normal Keywords:

Created on 2012年02月14日 19:12 by srikadur, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Messages (3)
msg153361 - (view) Author: Srikantha Kadur (srikadur) Date: 2012年02月14日 19:12
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.
msg153362 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2012年02月14日 19:16
This isn't really the place to get help on using python, but no, python doesn't do any implicit locking for you.
msg153364 - (view) Author: Srikantha Kadur (srikadur) Date: 2012年02月14日 19:20
Thanks David,
 as the last available option i used this tool.
History
Date User Action Args
2022年04月11日 14:57:26adminsetgithub: 58224
2012年02月14日 19:20:27srikadursetmessages: + msg153364
2012年02月14日 19:16:51r.david.murraysetstatus: open -> closed

nosy: + r.david.murray
messages: + msg153362

resolution: not a bug
2012年02月14日 19:12:26srikadurcreate

AltStyle によって変換されたページ (->オリジナル) /