Improvements to fork handling (2/5)

Ryan Johnson ryan.johnson@cs.utoronto.ca
Wed May 11 18:31:00 GMT 2011


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
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fork-topsort.patch
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20110511/8bc6b6de/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fork-topsort.changes
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20110511/8bc6b6de/attachment-0001.ksh>


More information about the Cygwin-patches mailing list