On 13 Apr 2005, at 12:47, Nick Williams wrote:
Hmmm.. to be honest I haven't actually touched the win32 code at all...Because code written using current Wheel::Run assumes parallelism. Do you mean 'why aren't we using CreateProcess'? Because it seemed simpler/less-maintenance to keep the code base as similar as possible between the two different architectures. And you need to do most of the strange shenanigans with StdHandles even when using CreateProcess since the modules that exist for win32 don't expose the underlying win32 facility of defining which handles to use in the spawned process.
What is the specific reason we need to fork() for Wheel::Run?
Nick
Knowing parts of the internals that the fake process environment uses I would strongly recommending on just using CreateProcess ;-). It is also quite wasteful to use fork() for this since unlike unix it will actually copy all your memory over (for now [1]).
Cheers Arthur
[1] That is until perlcow works, wich is hacked on now and then, the COW is working for NV currently[2]. Enjoy yourself at https://unixbeard.net/sky-svn/trunk/perlcow/ [3]
[2] That does however mean that sub foo { my $i = $_[0]; return $i } foo(1.2) is 15% faster than foo(1) on account that the 1.2 NV gets COW around instead of recreated [4]
[3] This url is a copy of my local svk repository that gets synced against bleadperl now and then again, hopefully once bleadperl uses svn I shall use that
[4] If these initial speedups continue it would be very very nice
----- CTO @ Fotango Ltd +447834716919 http://www.fotango.com/
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________
