mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 01:22:13 -06:00
logging + shutdown cleanup
This commit is contained in:
parent
8fcde2a579
commit
20cbcf6931
|
@ -48,6 +48,7 @@ class HttpSrv(object):
|
||||||
self.log = broker.log
|
self.log = broker.log
|
||||||
self.asrv = broker.asrv
|
self.asrv = broker.asrv
|
||||||
|
|
||||||
|
self.name = "httpsrv-i" + str(os.getpid())
|
||||||
self.mutex = threading.Lock()
|
self.mutex = threading.Lock()
|
||||||
self.stopping = False
|
self.stopping = False
|
||||||
|
|
||||||
|
@ -84,7 +85,7 @@ class HttpSrv(object):
|
||||||
def start_threads(self, n):
|
def start_threads(self, n):
|
||||||
self.tp_nthr += n
|
self.tp_nthr += n
|
||||||
if self.args.log_htp:
|
if self.args.log_htp:
|
||||||
self.log("httpsrv", "workers += {} = {}".format(n, self.tp_nthr), 6)
|
self.log(self.name, "workers += {} = {}".format(n, self.tp_nthr), 6)
|
||||||
|
|
||||||
for _ in range(n):
|
for _ in range(n):
|
||||||
thr = threading.Thread(
|
thr = threading.Thread(
|
||||||
|
@ -97,7 +98,7 @@ class HttpSrv(object):
|
||||||
def stop_threads(self, n):
|
def stop_threads(self, n):
|
||||||
self.tp_nthr -= n
|
self.tp_nthr -= n
|
||||||
if self.args.log_htp:
|
if self.args.log_htp:
|
||||||
self.log("httpsrv", "workers -= {} = {}".format(n, self.tp_nthr), 6)
|
self.log(self.name, "workers -= {} = {}".format(n, self.tp_nthr), 6)
|
||||||
|
|
||||||
for _ in range(n):
|
for _ in range(n):
|
||||||
self.tp_q.put(None)
|
self.tp_q.put(None)
|
||||||
|
@ -120,25 +121,23 @@ class HttpSrv(object):
|
||||||
"""listens on a shared tcp server"""
|
"""listens on a shared tcp server"""
|
||||||
ip, port = srv_sck.getsockname()
|
ip, port = srv_sck.getsockname()
|
||||||
fno = srv_sck.fileno()
|
fno = srv_sck.fileno()
|
||||||
msg = "subscribed @ {}:{} f{},p{}".format(ip, port, fno, os.getpid())
|
msg = "subscribed @ {}:{} f{}".format(ip, port, fno)
|
||||||
self.log("httpsrv", msg)
|
self.log(self.name, msg)
|
||||||
while not self.stopping:
|
while not self.stopping:
|
||||||
if self.args.log_conn:
|
if self.args.log_conn:
|
||||||
self.log("httpsrv", "|%sC-ncli" % ("-" * 1,), c="1;30")
|
self.log(self.name, "|%sC-ncli" % ("-" * 1,), c="1;30")
|
||||||
|
|
||||||
if len(self.clients) >= self.args.nc:
|
if len(self.clients) >= self.args.nc:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.args.log_conn:
|
if self.args.log_conn:
|
||||||
self.log("httpsrv", "|%sC-acc1" % ("-" * 2,), c="1;30")
|
self.log(self.name, "|%sC-acc1" % ("-" * 2,), c="1;30")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
sck, addr = srv_sck.accept()
|
sck, addr = srv_sck.accept()
|
||||||
except (OSError, socket.error) as ex:
|
except (OSError, socket.error) as ex:
|
||||||
self.log("httpsrv", "accept({}): {}".format(fno, ex), c=6)
|
self.log(self.name, "accept({}): {}".format(fno, ex), c=6)
|
||||||
if ex.errno not in [10038, 10054, 107, 57, 49, 9]:
|
|
||||||
raise
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.args.log_conn:
|
if self.args.log_conn:
|
||||||
|
@ -167,7 +166,7 @@ class HttpSrv(object):
|
||||||
|
|
||||||
if not self.args.no_htp:
|
if not self.args.no_htp:
|
||||||
m = "looks like the httpserver threadpool died; please make an issue on github and tell me the story of how you pulled that off, thanks and dog bless\n"
|
m = "looks like the httpserver threadpool died; please make an issue on github and tell me the story of how you pulled that off, thanks and dog bless\n"
|
||||||
self.log("httpsrv", m, 1)
|
self.log(self.name, m, 1)
|
||||||
|
|
||||||
thr = threading.Thread(
|
thr = threading.Thread(
|
||||||
target=self.thr_client,
|
target=self.thr_client,
|
||||||
|
@ -195,7 +194,7 @@ class HttpSrv(object):
|
||||||
self.thr_client(sck, addr)
|
self.thr_client(sck, addr)
|
||||||
me.name = "httpsrv-poolw"
|
me.name = "httpsrv-poolw"
|
||||||
except:
|
except:
|
||||||
self.log("httpsrv", "thr_client: " + min_ex(), 3)
|
self.log(self.name, "thr_client: " + min_ex(), 3)
|
||||||
|
|
||||||
def num_clients(self):
|
def num_clients(self):
|
||||||
with self.mutex:
|
with self.mutex:
|
||||||
|
@ -216,7 +215,14 @@ class HttpSrv(object):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.log("httpsrv-n", "ok bye")
|
if self.tp_q:
|
||||||
|
self.stop_threads(self.tp_nthr)
|
||||||
|
for _ in range(10):
|
||||||
|
time.sleep(0.05)
|
||||||
|
if self.tp_q.empty():
|
||||||
|
break
|
||||||
|
|
||||||
|
self.log("httpsrv-i" + str(os.getpid()), "ok bye")
|
||||||
|
|
||||||
def thr_client(self, sck, addr):
|
def thr_client(self, sck, addr):
|
||||||
"""thread managing one tcp client"""
|
"""thread managing one tcp client"""
|
||||||
|
|
Loading…
Reference in a new issue