This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
Improvements to fork handling (2/5)
- From: Ryan Johnson <ryan dot johnson at cs dot utoronto dot ca>
- To: cygwin-patches at cygwin dot com
- Date: Wed, 11 May 2011 14:31:37 -0400
- Subject: Improvements to fork handling (2/5)
Hi all,
This patch has the parent sort its dll list topologically by
dependencies. Previously, attempts to load a DLL_LOAD dll risked pulling
in dependencies automatically, and the latter would then not benefit
from the code which "encourages" them to land in the right places. The
dependency tracking is achieved using a simple class which allows to
introspect a mapped dll image and pull out the dependencies it lists.
The code currently rebuilds the dependency list at every fork rather
than attempt to update it properly as modules are loaded and unloaded.
Note that the topsort optimization affects only cygwin dlls, so any
windows dlls which are pulled in dynamically (directly or indirectly)
will still impose the usual risk of address space clobbers.
Ryan
Attachment:
fork-topsort.patch
Description: Text document
Attachment:
fork-topsort.changes
Description: Text document