gdb: kill openocd if it does not exit
Этот коммит содержится в:
родитель
869baca117
коммит
3fdd1a9249
1 изменённых файлов: 9 добавлений и 1 удалений
10
main.go
10
main.go
|
@ -15,6 +15,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync/atomic"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -464,8 +465,15 @@ func FlashGDB(pkgName string, ocdOutput bool, options *compileopts.Options) erro
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
daemon.Process.Signal(os.Interrupt)
|
daemon.Process.Signal(os.Interrupt)
|
||||||
// Maybe we should send a .Kill() after x seconds?
|
var stopped uint32
|
||||||
|
go func() {
|
||||||
|
time.Sleep(time.Millisecond * 100)
|
||||||
|
if atomic.LoadUint32(&stopped) == 0 {
|
||||||
|
daemon.Process.Kill()
|
||||||
|
}
|
||||||
|
}()
|
||||||
daemon.Wait()
|
daemon.Wait()
|
||||||
|
atomic.StoreUint32(&stopped, 1)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче