Author: sleon
Date: 2006-01-09 14:43:18 +0000 (Mon, 09 Jan 2006)
New Revision: 7828
Modified:
trunk/apps/freeviz/server.py
Log:
fixed lockups
Modified: trunk/apps/freeviz/server.py
===================================================================
--- trunk/apps/freeviz/server.py 2006-01-09 14:38:47 UTC (rev 7827)
+++ trunk/apps/freeviz/server.py 2006-01-09 14:43:18 UTC (rev 7828)
@@ -6,16 +6,15 @@
PORT=23415
NRCONS=100
-DELAY=10
-MAXRUNNING=10
+DELAY=2
+MAXCONNS=2
-
class Base(threading.Thread):
vlock = threading.Lock()
chunks=[]
id=0
- running=0
+ conns = 0
class Handler(Base):
@@ -49,12 +48,9 @@
self.clnsock.close()
Base.vlock.acquire()
Base.chunks.append(self.chunk)
+ Base.conns -= 1
Base.vlock.release()
print "%s\n________\n" % self.chunk
- Base.vlock.acquire()
- assert Base.running > 0
- Base.running -= 1
- Base.vlock.release
lstn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -62,19 +58,20 @@
lstn.listen(100)
h = Handler()
h.start()
-
+conns=0
while 1:
- Base.vlock.acquire()
- running = Base.running
- Base.vlock.release()
- if running < MAXRUNNING:
+ threading.Lock().acquire()
+ conns = Base.conns
+ threading.Lock().release
+ print "conns running %d" % conns
+
+ if conns < MAXCONNS:
(clnt,ap) = lstn.accept()
s = serv(clnt)
+ threading.Lock().acquire()
+ Base.conns += 1
+ threading.Lock().release
s.start()
- Base.vlock.acquire()
- Base.running += 1
- Base.vlock.release()
else:
+ print "DELAY!"
time.sleep(1)
-
-