|
@@ -348,6 +348,8 @@ process_start :: proc(desc: Process_Desc) -> (Process, Error) {
|
|
return _process_start(desc)
|
|
return _process_start(desc)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+import "core:log"
|
|
|
|
+
|
|
/*
|
|
/*
|
|
Execute the process and capture stdout and stderr streams.
|
|
Execute the process and capture stdout and stderr streams.
|
|
|
|
|
|
@@ -383,6 +385,8 @@ process_exec :: proc(
|
|
stderr_r, stderr_w := pipe() or_return
|
|
stderr_r, stderr_w := pipe() or_return
|
|
defer close(stderr_r)
|
|
defer close(stderr_r)
|
|
|
|
|
|
|
|
+ log.info("starting process")
|
|
|
|
+
|
|
process: Process
|
|
process: Process
|
|
{
|
|
{
|
|
// NOTE(flysand): Make sure the write-ends are closed, regardless
|
|
// NOTE(flysand): Make sure the write-ends are closed, regardless
|
|
@@ -395,6 +399,8 @@ process_exec :: proc(
|
|
process = process_start(desc) or_return
|
|
process = process_start(desc) or_return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ log.info("reading output")
|
|
|
|
+
|
|
{
|
|
{
|
|
defer if err != nil { _ = process_kill(process) }
|
|
defer if err != nil { _ = process_kill(process) }
|
|
|
|
|
|
@@ -423,6 +429,7 @@ process_exec :: proc(
|
|
case .EOF, .Broken_Pipe:
|
|
case .EOF, .Broken_Pipe:
|
|
stdout_done = true
|
|
stdout_done = true
|
|
case:
|
|
case:
|
|
|
|
+ log.infof("read stdout error: %v", err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -438,13 +445,16 @@ process_exec :: proc(
|
|
case .EOF, .Broken_Pipe:
|
|
case .EOF, .Broken_Pipe:
|
|
stderr_done = true
|
|
stderr_done = true
|
|
case:
|
|
case:
|
|
|
|
+ log.infof("read stderr error: %v", err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ log.info("waiting for exit")
|
|
state, err = process_wait(process)
|
|
state, err = process_wait(process)
|
|
|
|
+ log.info(state, err)
|
|
if !state.exited { _ = process_kill(process) }
|
|
if !state.exited { _ = process_kill(process) }
|
|
return
|
|
return
|
|
}
|
|
}
|