aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--internal/outcome/dispatcher_test.go1
-rw-r--r--internal/outcome/main.go4
-rw-r--r--internal/outcome/process.go7
3 files changed, 8 insertions, 4 deletions
diff --git a/internal/outcome/dispatcher_test.go b/internal/outcome/dispatcher_test.go
index 0d0568e4..87a24e6c 100644
--- a/internal/outcome/dispatcher_test.go
+++ b/internal/outcome/dispatcher_test.go
@@ -690,6 +690,7 @@ func (panicMsgContext) Value(any) any { panic("unreachable") }
type panicDispatcher struct{}
func (panicDispatcher) new(func(k syscallDispatcher, msg message.Msg)) { panic("unreachable") }
+func (panicDispatcher) getppid() int { panic("unreachable") }
func (panicDispatcher) getpid() int { panic("unreachable") }
func (panicDispatcher) getuid() int { panic("unreachable") }
func (panicDispatcher) getgid() int { panic("unreachable") }
diff --git a/internal/outcome/main.go b/internal/outcome/main.go
index 48762c13..feffb661 100644
--- a/internal/outcome/main.go
+++ b/internal/outcome/main.go
@@ -3,6 +3,7 @@ package outcome
import (
"context"
"log"
+ "time"
"hakurei.app/hst"
"hakurei.app/message"
@@ -16,10 +17,13 @@ func Main(ctx context.Context, msg message.Msg, config *hst.Config) {
}
seal := outcome{syscallDispatcher: direct{msg}}
+
+ finaliseTime := time.Now()
if err := seal.finalise(ctx, msg, &id, config); err != nil {
printMessageError(msg.GetLogger().Fatalln, "cannot seal app:", err)
panic("unreachable")
}
+ msg.Verbosef("finalise took %.2f ms", float64(time.Since(finaliseTime).Nanoseconds())/1e6)
seal.main(msg)
panic("unreachable")
diff --git a/internal/outcome/process.go b/internal/outcome/process.go
index 399e7cb1..c27ec067 100644
--- a/internal/outcome/process.go
+++ b/internal/outcome/process.go
@@ -110,14 +110,13 @@ func (k *outcome) main(msg message.Msg) {
)
for {
- var processTimePrev time.Time
- processTimePrev, processTime = processTime, time.Now()
var processStatePrev uintptr
processStatePrev, processStateCur = processStateCur, processState
- if !processTimePrev.IsZero() && processStatePrev != processLifecycle {
- msg.Verbosef("state %d took %d ms", processStatePrev, processTime.Sub(processTimePrev).Milliseconds())
+ if !processTime.IsZero() && processStatePrev != processLifecycle {
+ msg.Verbosef("state %d took %.2f ms", processStatePrev, float64(time.Since(processTime).Nanoseconds())/1e6)
}
+ processTime = time.Now()
switch processState {
case processStart: