I've got some interesting (IMO) tasks here that I'm hoping the project
would like to pick up. We developed them for part of the build of a
proprietary project, but my customer (I'm a consultant) is interested in
donating them back, at least in part so keeping them in sync with NAnt
upgrades becomes someone else's problem. :)

Here are the tasks: 

<asyncexec program="..."
    workingdir="..."
    handleProperty="somepropertyname">
  <arg value="..." />
  <arg value="..." />
</asyncexec>

And

<asyncrendezvous handle="${somepropertyname}" 
    ignorestderr="false" 
    ignorestdout="false"/>

The first one is pretty much exactly like <exec>, with the exception
that it does not wait for the process to terminate. Instead, it kicks it
off and immediately returns, storing a "handle" to the process in the
property indicated by the handleProperty attribute. 

Later, you can wait for the process to terminate via the
<asyncrendezvous> task. The ignorestderr and ignorestdout attributes let
you ignore standard error and standard output, which was something I
found useful for reasons unrelated to the asynchronous nature of the
tasks. Bonus feature! :)

Using these two tasks together has helped us speed up our build by a
factor of two, by starting long-running tasks early in the build
(database setup, in our case) and then rendezvousing on their completion
later on. Because the things we're doing are IO-bound rather than
CPU-bound, the parallelism really helps. 

Anyway, they're happy to donate the code for these tasks, but I don't
know that they'd have the resources to shepherd it through the
integration process. Ideally, someone from this project would step up
and take ownership of the code instead. Anyone willing? 


-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_idt12&alloc_id344&op=click
_______________________________________________
NAntContrib-Developer mailing list
NAntContrib-Developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nantcontrib-developer

Reply via email to