Skip to content

WIP: Improved job control / process termination

Arran Walker requested to merge ajwalker/jobcontrol into main

What does this MR do?

  • Correctly terminates windows processes.
  • Doesn't require executing taskkill.

Why was this MR needed?

  • Ctrl+Break + taskkill doesn't kill all processes started by the runner in some instances.
  • Running taskkill after each execution is slower.

Are there points in the code the reviewer needs to double check?

The caller only needs to call Wait() for waiting and cleanup to be handled.

Wait() now handles waiting on the process, and waiting for it to be killed when the context is cancelled. It calls to terminate() in defer, just to be safe also.

Does this MR meet the acceptance criteria?

  • Documentation created/updated
  • Added tests for this feature/bug
  • In case of conflicts with master - branch was rebased

What are the relevant issue numbers?

#3747

Edited by 🤖 GitLab Bot 🤖

Merge request reports