Displaying 4 results from an estimated 4 matches for "rmchild".
2019 May 19
2
Race condition on parallel package's mcexit and rmChild
...ork.R:
mcexit <- function(exit.code = 0L, send = NULL)
{
if (!is.null(send)) try(sendMaster(send), silent = TRUE)
.Call(C_mc_exit, as.integer(exit.code))
}
Between sendMaster() and mc_exit() calls, which are made in the child
process, the master process may call readChild() followed by
rmChild(). rmChild closes the pipe on the master side, and if it's
called before child calls mc_exit, a SIGPIPE will be raised when child
tries to write to the pipe in mc_exit.
rmChild is defined but not used in parallel package, so this problem
won't surface in most cases. However, it is a usef...
2019 May 20
1
Race condition on parallel package's mcexit and rmChild
...t
needs to write zero on exit. If a child closes its pipe, parent will
know that on next select.
Best,
Yijiang
Tomas Kalibera <tomas.kalibera at gmail.com> ?2019?5?20??? ??10:52???
>
> This issue has already been addressed in 76462 (R-devel) and also ported
> to R-patched. In fact rmChild() is used in mccollect(wait=FALSE).
>
> Best
> Tomas
>
> On 5/19/19 11:39 AM, Sun Yijiang wrote:
> > I've been hacking with parallel package for some time and built a
> > parallel processing framework with it. However, although very rarely,
> > I did notice &qu...
2019 May 20
0
Race condition on parallel package's mcexit and rmChild
This issue has already been addressed in 76462 (R-devel) and also ported
to R-patched. In fact rmChild() is used in mccollect(wait=FALSE).
Best
Tomas
On 5/19/19 11:39 AM, Sun Yijiang wrote:
> I've been hacking with parallel package for some time and built a
> parallel processing framework with it. However, although very rarely,
> I did notice "ignoring SIGPIPE signal" error...
2019 May 20
0
Race condition on parallel package's mcexit and rmChild
...ork.R:
mcexit <- function(exit.code = 0L, send = NULL)
{
if (!is.null(send)) try(sendMaster(send), silent = TRUE)
.Call(C_mc_exit, as.integer(exit.code))
}
Between sendMaster() and mc_exit() calls, which are made in the child
process, the master process may call readChild() followed by
rmChild(). rmChild closes the pipe on the master side, and if it's
called before child calls mc_exit, a SIGPIPE will be raised when child
tries to write to the pipe in mc_exit.
rmChild is defined but not used in parallel package, so this problem
won't surface in most cases. However, it is a usef...