Skip to content

Commit

Permalink
winc: fix setup time
Browse files Browse the repository at this point in the history
  • Loading branch information
criyle committed Jan 25, 2025
1 parent 58989da commit 6e65e2b
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions env/winc/environment_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"os"
"path"
"syscall"
"time"
"unicode/utf16"
"unsafe"

Expand Down Expand Up @@ -36,6 +37,7 @@ type Environment struct {

// Execve implements windows sandbox ..
func (e *Environment) Execve(ctx context.Context, param envexec.ExecveParam) (proc envexec.Process, err error) {
startTime := time.Now()
if len(param.Files) != 3 {
return nil, errFileCount
}
Expand Down Expand Up @@ -69,7 +71,10 @@ func (e *Environment) Execve(ctx context.Context, param envexec.ExecveParam) (pr
}

deskName := fmt.Sprintf("winc_%08x_%s", windows.GetCurrentProcessId(), hex.EncodeToString(random))
deskNameW := syscall.StringToUTF16Ptr(deskName)
deskNameW, err := syscall.UTF16PtrFromString(deskName)
if err != nil {
return nil, err
}

sa := windows.SecurityAttributes{
Length: uint32(unsafe.Sizeof(windows.SecurityAttributes{})),
Expand Down Expand Up @@ -106,8 +111,14 @@ func (e *Environment) Execve(ctx context.Context, param envexec.ExecveParam) (pr
}

cmdLine := makeCmdLine(param.Args)
cmdLineW := syscall.StringToUTF16Ptr(cmdLine)
dirW := syscall.StringToUTF16Ptr(e.root)
cmdLineW, err := syscall.UTF16PtrFromString(cmdLine)
if err != nil {
return nil, err
}
dirW, err := syscall.UTF16PtrFromString(e.root)
if err != nil {
return nil, err
}

var startupInfo syscall.StartupInfo
startupInfo.Cb = uint32(unsafe.Sizeof(startupInfo))
Expand Down Expand Up @@ -165,6 +176,7 @@ func (e *Environment) Execve(ctx context.Context, param envexec.ExecveParam) (pr
return nil, err
}

setUpTime := time.Now()
// resume thread
if _, err := windows.ResumeThread(windows.Handle(processInfo.Thread)); err != nil {
return nil, err
Expand Down Expand Up @@ -258,6 +270,8 @@ func (e *Environment) Execve(ctx context.Context, param envexec.ExecveParam) (pr
}
result.Time = t
result.Memory = m
result.SetUpTime = setUpTime.Sub(startTime)
result.RunningTime = time.Since(setUpTime)
procSet.result = result
}()

Expand Down

0 comments on commit 6e65e2b

Please sign in to comment.