process - tcl子进程执行异常
问题描述
我在这里使用代码来并行运行一些进程。
https://wiki.tcl-lang.org/page/Execute+in+Parallel+and+Wait
这是我修改过的代码。
foreach scenario $scenario_list {
set script {
set sname $scenario
puts "Scenario: $sname"
set sdir "$curr_dir/$sname"
puts "Results from: $sdir"
extract_system_kpis $sname "SUCCESS" $sdir $hw_instance_list $hbm_scheduler_pairs
}
set chan [open |[list [info nameofexecutable] <<$script 2>@stderr]]
dict set res $chan command $script
fconfigure $chan -blocking 0
lappend background $chan
}
while 1 {
foreach chan $background {
if {[eof $chan]} {
fconfigure $chan -blocking 1
if {[set idx [lsearch -exact $background $chan]] >= 0} {
set background [lreplace $background $idx $idx]
}
catch [close $chan] cres copts
dict set res $chan result $cres
dict set res $chan options $copts
} else {
puts -nonewline [read $chan]
}
}
if {[llength $background] == 0} {
break
}
after 100
}
return $res
执行“close $chan”时出现错误子进程异常退出
有任何想法吗?我正在运行 TCL 8.6
谢谢
解决方案
推荐阅读
- r - R在使用read_excel导入期间更改excel值
- javascript - 无需单击即可在 ReactJS 中打开模态
- java - Java中的文件阅读器
- c++ - 如何在 qml 中向 QAbstractVideoFilter 发送参数?
- python - IndexError:列表索引超出范围。无法理解问题出在哪里?
- javascript - JavaScript Arrays .push() 未按预期工作
- django - 如何在 Angular 中使用 localhost API
- amazon-web-services - 使用 Cognito 与 IAM 和 Amplify 进行授权
- javascript - 从下拉列表中选择选项时,将相应的数据插入到动态创建的表中
- javascript - 无线电循环不起作用 - 使用 jquery 访问检查值