To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=61856





------- Additional comments from [EMAIL PROTECTED] Thu Nov 16 12:47:25 -0800 
2006 -------
The following section is mainly meant for myself to explain why the
previous patch is not the solution for the problem.

First of all the intend of Wait_for_completion=TRUE is not waiting
for a specific PID but to wait for all commands of a process array
entry to finish.

The proposed solution to only keep Wait_for_completion TRUE in
Wait_for_child() if we received the PID we were waiting for is bad
because the following can happen if other process arrays are active:

Wait_for_child() calls _finished_child() (I) without Wait_for_completion=TRUE
and _finished_child() calls runargv() with the next process array entry
*and* runargv() -> _add_child() starts the command and returns.

If now _proc_cnt==Max_proc _finished_child calls Wait_for_child(,-1) and
can catch the PID we are waiting for in the first place, it calls
 _finished_child() (II) -> runargv() -> _add_child() and returns.

Now _finished_child() (I) returns to the Wait_for_child() that is still
waiting for PID to finish and in the next loop waitpid(PID,...) finds
that the PID is no longer active and returns to the caller of
Wait_for_child(, PID) (The -1 return code is ignored) even though there
are still followup commands in the process array entry.

This obviously can lead to inconsistencies.


Short summary: Mixing global variables and parallel processing is not
good.

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to