mitchellh/vagrant — pull request #1383 by canausa (2013-02-22 05:49:55+00:00)
Title: Forks out the provisioning

This pull requests creates a ruby fork for every provision called. The fork allows the main vagrant process to continue to run while the vm is being provisioned in the background. Once all the vms have been created the main vagrant process waits for each provision fork to complete before returning to the user.

With this modification I was able to reduce the up command of a simple mult vm setup of 1 mysql server and 1 apache/php server from 4 minutes to 3 minutes. As the provisioning process becomes more complex then this example the time saved by this patch grows exponentially.

I attempt to run the unit test before making the pull but even with a clean 1-0-stable checkout I was unable to get all the unit tests to pass. I am unsure if this patch will pass the unit test as a result.

This is my first time really working with ruby, so any modifications or suggestions you have I am willing to correct for this patch.