boinc-upstream:tolive_wrapper_wait-for-children

Last commit made on 2019-10-31
Get this branch:
git clone -b tolive_wrapper_wait-for-children https://git.launchpad.net/boinc-upstream

Branch merges

Branch information

Name:
tolive_wrapper_wait-for-children
Repository:
lp:boinc-upstream

Recent commits

471b0a0... by Tristan Olive <email address hidden>

Wrapper: Fix job control for job objects

The get_job_object_processes() function was not providing a complete list of PIDs, as the cbJobObjectInformationLength parameter passed to QueryInformationJobObject() needed to be larger. It should now accomodate up to 32 processes in the job object.

Also related to job control, having no timeout set in the GetQueuedCompletionStatus() call was causing task polling to hang indefinitely when a child process launched another child process. Set the timeout to 3000ms to prevent this.

efaffa1... by Tristan Olive <email address hidden>

Wrapper: Fix out of scope variable on Linux and Mac

The job_handle for job objects is only relevant on Windows, so should not be referenced outside of _WIN32 blocks

e75d100... by Tristan Olive <email address hidden>

Wrapper: Fix whitespace around else

649ac78... by Tristan Olive <email address hidden>

Wrapper: Add process control for job objects

Add routines for handling kill(), stop(), and resume() calls on tasks that use the <wait_for_children> option

d0ec1c5... by Tristan Olive <email address hidden>

Wrapper: Add different stderr log message on task exit if waiting for children

ece6bdd... by Tristan Olive <email address hidden>

Wrapper: Fix status code when child processes complete

When using a job object to handle child processes, the status should still return 0 on success. If a child exits abnormally, the completion code is set to JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS, so just return that for now.

8665946... by Tristan Olive <email address hidden>

Wrapper: Replace undeclared use of nullptr with NULL

43ad15a... by Tristan Olive <email address hidden>

Wrapper: Monitor status of child task process even if parent exits

On Windows, CreateProcess() is used to launch tasks, but this on its own does not handle child processes; if the parent task process exits, the workunit will be terminated. If <wait_for_children> is set in the job file, attach the task process to a job object instead, which can then be monitored to determine when all child processes are finished.

466e05d... by Rytis Slatkevičius

Merge pull request #3301 from BOINC/knreed_translation_templates

Localization Updates

68235b1... by Kevin Reed <email address hidden>

Locale: Update localization files [skip ci]