Compare commits
2 Commits
c538df7daa
...
ccc0d98bd7
| Author | SHA1 | Date | |
|---|---|---|---|
|
ccc0d98bd7
|
|||
|
a3fd05765e
|
@@ -380,6 +380,9 @@ func initEntrypoint(k syscallDispatcher, msg message.Msg) {
|
||||
err error
|
||||
wpid = -2
|
||||
wstatus WaitStatus
|
||||
|
||||
// whether initial process has started
|
||||
started bool
|
||||
)
|
||||
|
||||
// keep going until no child process is left
|
||||
@@ -406,6 +409,10 @@ func initEntrypoint(k syscallDispatcher, msg message.Msg) {
|
||||
}
|
||||
}
|
||||
|
||||
if !started {
|
||||
started = initialProcessStarted.Load()
|
||||
}
|
||||
|
||||
err = EINTR
|
||||
for errors.Is(err, EINTR) {
|
||||
wpid, err = k.wait4(-1, &wstatus, 0, nil)
|
||||
@@ -414,7 +421,7 @@ func initEntrypoint(k syscallDispatcher, msg message.Msg) {
|
||||
|
||||
if !errors.Is(err, ECHILD) {
|
||||
k.printf(msg, "unexpected wait4 response: %v", err)
|
||||
} else if !initialProcessStarted.Load() {
|
||||
} else if !started {
|
||||
// initial process has not yet been reached and all daemons
|
||||
// terminated or none were started in the first place
|
||||
time.Sleep(500 * time.Microsecond)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hakurei";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
|
||||
srcFiltered = builtins.path {
|
||||
name = "${pname}-src";
|
||||
|
||||
Reference in New Issue
Block a user