Make Requests Processes and create process hierarchy. Associate OpenRepository with context. (#17125)
This PR registers requests with the process manager and manages hierarchy within the processes. Git repos are then associated with a context, (usually the request's context) - with sub commands using this context as their base context. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
d894c90b70
commit
01087e9eef
66 changed files with 591 additions and 306 deletions
|
@ -56,8 +56,8 @@ func GetRepoRawDiffForFile(repo *Repository, startCommit, endCommit string, diff
|
|||
fileArgs = append(fileArgs, "--", file)
|
||||
}
|
||||
// FIXME: graceful: These commands should have a timeout
|
||||
ctx, cancel := context.WithCancel(DefaultContext)
|
||||
defer cancel()
|
||||
ctx, _, finished := process.GetManager().AddContext(repo.Ctx, fmt.Sprintf("GetRawDiffForFile: [repo_path: %s]", repo.Path))
|
||||
defer finished()
|
||||
|
||||
var cmd *exec.Cmd
|
||||
switch diffType {
|
||||
|
@ -90,8 +90,6 @@ func GetRepoRawDiffForFile(repo *Repository, startCommit, endCommit string, diff
|
|||
cmd.Dir = repo.Path
|
||||
cmd.Stdout = writer
|
||||
cmd.Stderr = stderr
|
||||
pid := process.GetManager().Add(fmt.Sprintf("GetRawDiffForFile: [repo_path: %s]", repo.Path), cancel)
|
||||
defer process.GetManager().Remove(pid)
|
||||
|
||||
if err = cmd.Run(); err != nil {
|
||||
return fmt.Errorf("Run: %v - %s", err, stderr)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue