fix even more hang situations due to client_mutex
This commit is contained in:
parent
7b680a8ed3
commit
4332466210
@ -1259,9 +1259,15 @@ function on_ws_error(event)
|
||||
divlog("WebSocket error.",1);
|
||||
}
|
||||
|
||||
String.prototype.startswith=function(str){ return this.indexOf(str) == 0; }; //http://stackoverflow.com/questions/646628/how-to-check-if-a-string-startswith-another-string
|
||||
|
||||
function open_websocket()
|
||||
{
|
||||
//ws_url="ws://"+(window.location.origin.split("://")[1])+"/ws/" //guess automatically
|
||||
if(ws_url.startswith("ws://localhost:")&&window.location.hostname!="127.0.0.1"&&window.location.hostname!="localhost")
|
||||
{
|
||||
divlog("Server administrator should set <em>server_hostname</em> correctly, because it is left as <em>\"localhost\"</em>. Now guessing hostname from page URL.",1);
|
||||
ws_url="ws://"+(window.location.origin.split("://")[1])+"/ws/"; //guess automatically
|
||||
}
|
||||
if (!("WebSocket" in window))
|
||||
divlog("Your browser does not support WebSocket, which is required for WebRX to run. Please upgrade to a HTML5 compatible browser.");
|
||||
ws = new WebSocket(ws_url+client_id);
|
||||
|
@ -153,10 +153,13 @@ def spectrum_thread_function():
|
||||
data=dsp.read(cfg.fft_size*4)
|
||||
#print "gotcha",len(data),"bytes of spectrum data via spectrum_thread_function()"
|
||||
clients_mutex.acquire()
|
||||
correction=0
|
||||
for i in range(0,len(clients)):
|
||||
i-=correction
|
||||
if (clients[i].ws_started):
|
||||
if clients[i].spectrum_queue.full():
|
||||
close_client(i, False)
|
||||
correction+=1
|
||||
else:
|
||||
clients[i].spectrum_queue.put([data]) # add new string by "reference" to all clients
|
||||
clients_mutex.release()
|
||||
|
Loading…
Reference in New Issue
Block a user