pulumi/pkg/resource/plugin
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
..
analyzer.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
analyzer_plugin.go Send structured errors across RPC boundaries (#1072) 2018-03-28 17:07:35 -07:00
check.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
config_source.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
context.go Snapshot management overhaul and refactor (#1273) 2018-04-25 17:20:08 -07:00
host.go Snapshot management overhaul and refactor (#1273) 2018-04-25 17:20:08 -07:00
host_server.go Switch to a resource-progress oriented view for pulumi preview/update/destroy (#1116) 2018-04-10 12:03:11 -07:00
langruntime.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
langruntime_plugin.go Send structured errors across RPC boundaries (#1072) 2018-03-28 17:07:35 -07:00
plugin.go Produce a single message for the text we receive when running, not a message per line of output. (#1191) 2018-04-13 15:44:35 -07:00
provider.go Add an ID property to ReadResponse (#1145) 2018-04-10 12:58:50 -07:00
provider_plugin.go Run Configure calls in parallel (#1321) 2018-05-04 14:29:47 -07:00
rpc.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00
rpc_test.go Update the copyright end date to 2018. (#1068) 2018-03-21 12:43:21 -07:00