mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-04 11:06:21 +00:00
shimv2: multi wait support for wait service
Support multi wait on one container/exec process. Fixes: #1131 Signed-off-by: fupan <lifupan@gmail.com>
This commit is contained in:
parent
3a2c0a6506
commit
5ba30fd628
@ -728,12 +728,20 @@ func (s *service) Wait(ctx context.Context, r *taskAPI.WaitRequest) (*taskAPI.Wa
|
|||||||
//wait for container
|
//wait for container
|
||||||
if r.ExecID == "" {
|
if r.ExecID == "" {
|
||||||
ret = <-c.exitCh
|
ret = <-c.exitCh
|
||||||
|
|
||||||
|
// refill the exitCh with the container process's exit code in case
|
||||||
|
// there were other waits on this process.
|
||||||
|
c.exitCh <- ret
|
||||||
} else { //wait for exec
|
} else { //wait for exec
|
||||||
execs, err := c.getExec(r.ExecID)
|
execs, err := c.getExec(r.ExecID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ret = <-execs.exitCh
|
ret = <-execs.exitCh
|
||||||
|
|
||||||
|
// refill the exitCh with the exec process's exit code in case
|
||||||
|
// there were other waits on this process.
|
||||||
|
execs.exitCh <- ret
|
||||||
}
|
}
|
||||||
|
|
||||||
return &taskAPI.WaitResponse{
|
return &taskAPI.WaitResponse{
|
||||||
|
Loading…
Reference in New Issue
Block a user