Add new function WaitForParallelWorkersToAttach.
authorRobert Haas <rhaas@postgresql.org>
Fri, 2 Feb 2018 14:00:59 +0000 (09:00 -0500)
committerRobert Haas <rhaas@postgresql.org>
Fri, 2 Feb 2018 14:00:59 +0000 (09:00 -0500)
commit9222c0d9ed9794d54fc3f5101498829eaec9e799
tree53a706d621a1edc1a9c792f690604a23e978dff0
parenta2a22057617dc84b500f85938947c125183f1289
Add new function WaitForParallelWorkersToAttach.

Once this function has been called, we know that all workers have
started and attached to their error queues -- so if any of them
subsequently exit uncleanly, we'll be sure to throw an ERROR promptly.
Otherwise, users of the ParallelContext machinery must be careful not
to wait forever for a worker that has failed to start.  Parallel query
manages to work without needing this for reasons explained in new
comments added by this patch, but it's a useful primitive for other
parallel operations, such as the pending patch to make creating a
btree index run in parallel.

Amit Kapila, revised by me.  Additional review by Peter Geoghegan.

Discussion: http://postgr.es/m/CAA4eK1+e2MzyouF5bg=OtyhDSX+=Ao=3htN=T-r_6s3gCtKFiw@mail.gmail.com
src/backend/access/transam/parallel.c
src/backend/executor/nodeGather.c
src/backend/executor/nodeGatherMerge.c
src/include/access/parallel.h