2017-09-06 133 views
-1

錯誤的蟒蛇服務器給上檢測到的fileno 3的Python:休息服務器

二同時讀取。除非你真的知道 你在做什麼,否則確保只有一個greenthread可以讀取任何 特定的套接字。考慮使用pool.Pool。如果你知道你正在做什麼 並想要禁用此錯誤,請致電 eventlet.debug.hub_prevent_multiple_readers(False) - MY THREAD =; THAT THREAD = FdListener( '讀',3,,)

溫控功能:

try:               
       fd.sendto(string_to_send,"/tmp/serversocket") 
except Exception, e:           
       ERROR 

while 1:              
       try:             
         data = fd.recv(struct.calcsize(format_)) 
         "parsing of data received"      


       except Exception, e:         
         err = e.args[0]         
         if err == errno.EAGAIN or err == errno.EWOULDBLOCK: 
           print 'No data available'    
           continue        
         else:           
           ERROR 

具有相同的功能兩種功能, 而同時訪問的功能,我正在此錯誤。

回答

0

嘗試創建一個互斥

lock = threading.RLock() 
... 
with lock: 
    # fd stuff 
+0

這是同時處理的請求? – rohit

+0

好吧,只需在fd.recv周圍放置互斥鎖,以便一次只讀取一個線程。 「接收數據的解析」部分將是併發的。 – FreshPow

+0

但我想以異步方式執行這些功能,但是所有這些都是同步類型。 – rohit