Bug#42641 mtr.pl fails to run within JobObject

- Allow the new process to break away from any job that this
   process is part of so that it can be assigned to the new JobObject
   we just created. This is safe since the new JobObject is created with
   the JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE flag, making sure it will be
   terminated when the last handle to it is closed(which is owned by
   this process).
This commit is contained in:
Magnus Svensson 2009-02-06 08:38:24 +01:00
parent 1177405381
commit aca7ca6bba

View File

@ -237,12 +237,19 @@ int main(int argc, const char** argv )
/* /*
Create the process suspended to make sure it's assigned to the Create the process suspended to make sure it's assigned to the
Job before it creates any process of it's own Job before it creates any process of it's own
Allow the new process to break away from any job that this
process is part of so that it can be assigned to the new JobObject
we just created. This is safe since the new JobObject is created with
the JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE flag, making sure it will be
terminated when the last handle to it is closed(which is owned by
this process).
*/ */
if (CreateProcess(NULL, (LPSTR)child_args, if (CreateProcess(NULL, (LPSTR)child_args,
NULL, NULL,
NULL, NULL,
TRUE, /* inherit handles */ TRUE, /* inherit handles */
CREATE_SUSPENDED, CREATE_SUSPENDED | CREATE_BREAKAWAY_FROM_JOB,
NULL, NULL,
NULL, NULL,
&si, &si,