mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-06 13:02:15 -07:00
Subprocessor: now should write an error if failed to start
This commit is contained in:
parent
0c2e1c3944
commit
05606b5e15
1 changed files with 22 additions and 31 deletions
|
@ -81,11 +81,8 @@ class Subprocessor(object):
|
||||||
except Subprocessor.SilenceException as e:
|
except Subprocessor.SilenceException as e:
|
||||||
c2s.put ( {'op': 'error', 'data' : data} )
|
c2s.put ( {'op': 'error', 'data' : data} )
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
c2s.put ( {'op': 'error', 'data' : data} )
|
err_msg = traceback.format_exc()
|
||||||
if data is not None:
|
c2s.put ( {'op': 'error', 'data' : data, 'err_msg' : err_msg} )
|
||||||
print ('Exception while process data [%s]: %s' % (self.get_data_name(data), traceback.format_exc()) )
|
|
||||||
else:
|
|
||||||
print ('Exception: %s' % (traceback.format_exc()) )
|
|
||||||
|
|
||||||
c2s.close()
|
c2s.close()
|
||||||
s2c.close()
|
s2c.close()
|
||||||
|
@ -159,6 +156,24 @@ class Subprocessor(object):
|
||||||
|
|
||||||
self.clis = []
|
self.clis = []
|
||||||
|
|
||||||
|
def cli_init_dispatcher(cli):
|
||||||
|
while not cli.c2s.empty():
|
||||||
|
obj = cli.c2s.get()
|
||||||
|
op = obj.get('op','')
|
||||||
|
if op == 'init_ok':
|
||||||
|
cli.state = 0
|
||||||
|
elif op == 'log_info':
|
||||||
|
io.log_info(obj['msg'])
|
||||||
|
elif op == 'log_err':
|
||||||
|
io.log_err(obj['msg'])
|
||||||
|
elif op == 'error':
|
||||||
|
err_msg = obj.get('err_msg', None)
|
||||||
|
if err_msg is not None:
|
||||||
|
io.log_info(f'Error while subprocess initialization: {err_msg}')
|
||||||
|
cli.kill()
|
||||||
|
self.clis.remove(cli)
|
||||||
|
break
|
||||||
|
|
||||||
#getting info about name of subprocesses, host and client dicts, and spawning them
|
#getting info about name of subprocesses, host and client dicts, and spawning them
|
||||||
for name, host_dict, client_dict in self.process_info_generator():
|
for name, host_dict, client_dict in self.process_info_generator():
|
||||||
try:
|
try:
|
||||||
|
@ -173,19 +188,7 @@ class Subprocessor(object):
|
||||||
|
|
||||||
if self.initialize_subprocesses_in_serial:
|
if self.initialize_subprocesses_in_serial:
|
||||||
while True:
|
while True:
|
||||||
while not cli.c2s.empty():
|
cli_init_dispatcher(cli)
|
||||||
obj = cli.c2s.get()
|
|
||||||
op = obj.get('op','')
|
|
||||||
if op == 'init_ok':
|
|
||||||
cli.state = 0
|
|
||||||
elif op == 'log_info':
|
|
||||||
io.log_info(obj['msg'])
|
|
||||||
elif op == 'log_err':
|
|
||||||
io.log_err(obj['msg'])
|
|
||||||
elif op == 'error':
|
|
||||||
cli.kill()
|
|
||||||
self.clis.remove(cli)
|
|
||||||
break
|
|
||||||
if cli.state == 0:
|
if cli.state == 0:
|
||||||
break
|
break
|
||||||
io.process_messages(0.005)
|
io.process_messages(0.005)
|
||||||
|
@ -198,19 +201,7 @@ class Subprocessor(object):
|
||||||
#waiting subprocesses their success(or not) initialization
|
#waiting subprocesses their success(or not) initialization
|
||||||
while True:
|
while True:
|
||||||
for cli in self.clis[:]:
|
for cli in self.clis[:]:
|
||||||
while not cli.c2s.empty():
|
cli_init_dispatcher(cli)
|
||||||
obj = cli.c2s.get()
|
|
||||||
op = obj.get('op','')
|
|
||||||
if op == 'init_ok':
|
|
||||||
cli.state = 0
|
|
||||||
elif op == 'log_info':
|
|
||||||
io.log_info(obj['msg'])
|
|
||||||
elif op == 'log_err':
|
|
||||||
io.log_err(obj['msg'])
|
|
||||||
elif op == 'error':
|
|
||||||
cli.kill()
|
|
||||||
self.clis.remove(cli)
|
|
||||||
break
|
|
||||||
if all ([cli.state == 0 for cli in self.clis]):
|
if all ([cli.state == 0 for cli in self.clis]):
|
||||||
break
|
break
|
||||||
io.process_messages(0.005)
|
io.process_messages(0.005)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue