Monday, 7 May 2012

Re: [gccsdk] fork/exec problems

In message <77ebe08b52.beeb@ron1954.woosh.co.nz>
Ron <beeb@woosh.co.nz> wrote:

> I appreciate Duncan's bug report on fork/exec as I am having problems.
> The latest release 4.1.2 (upgraded last night) reliably halts with
> segmentation error.
> Actually previous releases have been giving more erratic faults only
> sometimes crashing at the some spot further into the program after
> returning from the fork.
>
> In the case of Tar, simply replacing fork with vfork or setting
> Tar$heap "" doesn't work, though I think in the long term, I'll have
> to change the code so it will work with vfork.
> The fork/exec is only doing a bit of file renaming for multipart tars,
> so shouldn't need a full copy of the parent.
>

I have vfork() working with the execv command now and straight away
it looks like any problem is gone.

I was changing fork() to vfork() in a place that affected all fork()'s
in the program and that did not work.
It looks like the fork()/execv combination was the main problem.

I notice now I'm using vfork()/execv that the application task size
does not grow, and it stays at the allocated wimpslot size.
With fork()/execv, about 740K was added to the displayed task size
each time that routine was called. The older 4.1.2 would allow this
to happen sometimes but typically would cause a crash somewhere
after a few fork()/execv's.

Thanks, Ron M.

_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

No comments:

Post a Comment