pulumi/pkg/resource
Joe Duffy f92eb0a4e8 Run Configure calls in parallel (#1321)
As of this change, the engine will run all Configure calls in parallel.
This improves startup performance, since otherwise, we would block
waiting for all plugins to be configured before proceeding to run a
program.  Emperically, this is about 1.5-2s for AWS programs, and
manifests as a delay between the purple "Previewing update of stack"
being printed, and the corresponding grey "Previewing update" message.

This is done simply by using a Goroutine for Configure, and making sure
to synchronize on all actual CRUD operations.  I toyed with using double
checked locking to eliminate lock acquisitions -- something we may want
to consider as we add more fine-grained parallelism -- however, I've
kept it simple to avoid all the otherwise implied memory model woes.

I made the judgment call that GetPluginInfo may proceed before
Configure has settled.  (Otherwise, we'd immediately call it and block
after loading the plugin, obviating the parallelism benefits.)  I also
made the judgment call to do this in the engine, after flip flopping
several times about possibly making it a provider's own decision.
2018-05-04 14:29:47 -07:00
..
config Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
deploy Revert the changes from #1261. 2018-05-01 10:01:18 -07:00
plugin Run Configure calls in parallel (#1321) 2018-05-04 14:29:47 -07:00
provider Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
stack Remove the need to pulumi init for the local backend 2018-04-18 04:53:49 -07:00
testdata Fix asset bugs; write more tests 2017-10-24 09:00:11 -07:00
asset.go Fix handling of nested archives (#1283) 2018-04-27 17:10:50 -07:00
asset_test.go Fix handling of nested archives (#1283) 2018-04-27 17:10:50 -07:00
errors.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
properties.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
properties_diff.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
properties_diff_test.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
properties_test.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
resource_goal.go Implement a refresh command 2018-04-18 10:57:16 -07:00
resource_id.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
resource_id_test.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
resource_state.go Revert "Lift snapshot management out of the engine and serialize writes to snapshot (#1069)" (#1216) 2018-04-16 23:04:56 -07:00
stack.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
status.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
urn.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
urn_test.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00