有子进程失败时停止所有子进程
This commit is contained in:
10
make.py
10
make.py
@@ -7,7 +7,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import dataclasses
|
import dataclasses
|
||||||
from multiprocessing import Process,Queue
|
from multiprocessing import Process,Queue,Value
|
||||||
from create_lambda_fun import search_lambda
|
from create_lambda_fun import search_lambda
|
||||||
from create_signal_fun import moc_file_create
|
from create_signal_fun import moc_file_create
|
||||||
|
|
||||||
@@ -114,8 +114,10 @@ class cmd_item_t:
|
|||||||
cmd:str
|
cmd:str
|
||||||
info:str
|
info:str
|
||||||
|
|
||||||
def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue):
|
def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue,failed_num):
|
||||||
while(not cmd_queue.empty()):
|
while(not cmd_queue.empty()):
|
||||||
|
if(failed_num.value>0):
|
||||||
|
return
|
||||||
try:
|
try:
|
||||||
cmd=cmd_queue.get_nowait()
|
cmd=cmd_queue.get_nowait()
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -125,6 +127,7 @@ def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue):
|
|||||||
ret=os.system(cmd.cmd)
|
ret=os.system(cmd.cmd)
|
||||||
if(ret):
|
if(ret):
|
||||||
return_list.put((cpu_index,False))
|
return_list.put((cpu_index,False))
|
||||||
|
failed_num.value+=1
|
||||||
return
|
return
|
||||||
return_list.put((cpu_index,True))
|
return_list.put((cpu_index,True))
|
||||||
|
|
||||||
@@ -134,8 +137,9 @@ def run_cmd_queue(cmd_queue:Queue,cpu_num:int=4):
|
|||||||
return
|
return
|
||||||
process_list = []
|
process_list = []
|
||||||
return_list=Queue()
|
return_list=Queue()
|
||||||
|
failed_num=Value('i',0)
|
||||||
for i in range(cpu_num):
|
for i in range(cpu_num):
|
||||||
p = Process(target=run_cmd,args=(cmd_queue,i,return_list,))
|
p = Process(target=run_cmd,args=(cmd_queue,i,return_list,failed_num,))
|
||||||
p.start()
|
p.start()
|
||||||
process_list.append(p)
|
process_list.append(p)
|
||||||
for i in process_list:
|
for i in process_list:
|
||||||
|
@@ -4,7 +4,7 @@ import sys
|
|||||||
import time
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
import dataclasses
|
import dataclasses
|
||||||
from multiprocessing import Process,Queue
|
from multiprocessing import Process,Queue,Value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ OBJCPY="riscv64-unknown-elf-objcopy"
|
|||||||
OBJDUMP="riscv64-unknown-elf-objdump"
|
OBJDUMP="riscv64-unknown-elf-objdump"
|
||||||
|
|
||||||
CFLAG=[
|
CFLAG=[
|
||||||
"-march=rv32i",
|
"-march=rv32i_zicsr",
|
||||||
"-mabi=ilp32",
|
"-mabi=ilp32",
|
||||||
"-ffunction-sections",
|
"-ffunction-sections",
|
||||||
"-fdata-sections",
|
"-fdata-sections",
|
||||||
@@ -95,7 +95,6 @@ def tran_path(path:str):
|
|||||||
|
|
||||||
# 判断是否需要重新生成
|
# 判断是否需要重新生成
|
||||||
def check_rebuild(dst:str,src:list):
|
def check_rebuild(dst:str,src:list):
|
||||||
# print(f"src:{src}")
|
|
||||||
if(not os.path.exists(dst)):
|
if(not os.path.exists(dst)):
|
||||||
return True
|
return True
|
||||||
dst_time=os.path.getmtime(dst)
|
dst_time=os.path.getmtime(dst)
|
||||||
@@ -105,9 +104,6 @@ def check_rebuild(dst:str,src:list):
|
|||||||
src_time.sort()
|
src_time.sort()
|
||||||
if(src_time[-1]>dst_time):
|
if(src_time[-1]>dst_time):
|
||||||
return True
|
return True
|
||||||
# for item in src_time:
|
|
||||||
# if(item>dst_time):
|
|
||||||
# return True
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@@ -125,7 +121,6 @@ def read_depend_files(name:str):
|
|||||||
t+=line
|
t+=line
|
||||||
t=t.split(':')[-1].strip()
|
t=t.split(':')[-1].strip()
|
||||||
t=t.split(' ')
|
t=t.split(' ')
|
||||||
# print(f"依赖列表{t}")
|
|
||||||
return t
|
return t
|
||||||
|
|
||||||
|
|
||||||
@@ -134,8 +129,10 @@ class cmd_item_t:
|
|||||||
cmd:str
|
cmd:str
|
||||||
info:str
|
info:str
|
||||||
|
|
||||||
def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue):
|
def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue,failed_num):
|
||||||
while(not cmd_queue.empty()):
|
while(not cmd_queue.empty()):
|
||||||
|
if(failed_num.value>0):
|
||||||
|
return
|
||||||
try:
|
try:
|
||||||
cmd=cmd_queue.get_nowait()
|
cmd=cmd_queue.get_nowait()
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -145,6 +142,7 @@ def run_cmd(cmd_queue:Queue,cpu_index:int,return_list:Queue):
|
|||||||
ret=os.system(cmd.cmd)
|
ret=os.system(cmd.cmd)
|
||||||
if(ret):
|
if(ret):
|
||||||
return_list.put((cpu_index,False))
|
return_list.put((cpu_index,False))
|
||||||
|
failed_num.value+=1
|
||||||
return
|
return
|
||||||
return_list.put((cpu_index,True))
|
return_list.put((cpu_index,True))
|
||||||
|
|
||||||
@@ -154,8 +152,9 @@ def run_cmd_queue(cmd_queue:Queue,cpu_num:int=4):
|
|||||||
return
|
return
|
||||||
process_list = []
|
process_list = []
|
||||||
return_list=Queue()
|
return_list=Queue()
|
||||||
|
failed_num=Value('i',0)
|
||||||
for i in range(cpu_num):
|
for i in range(cpu_num):
|
||||||
p = Process(target=run_cmd,args=(cmd_queue,i,return_list,))
|
p = Process(target=run_cmd,args=(cmd_queue,i,return_list,failed_num,))
|
||||||
p.start()
|
p.start()
|
||||||
process_list.append(p)
|
process_list.append(p)
|
||||||
for i in process_list:
|
for i in process_list:
|
||||||
|
Reference in New Issue
Block a user