On Sat, Sep 17, 2016 at 2:40 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Fri, Sep 16, 2016 at 11:54 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>>
>> + /*
>> + * We need a write barrier to make sure the update of
>> + * parallel_terminate_count is done before the store to in_use
>> + */
>>
>> Does the order actually matter here?
>>
>
> I think so. If slot->in_use is reordered before the check of
> is_parallel_worker, then it is possible that concurrent registration
> of worker can mark the is_parallel_worker as false before we check the
> flag here. See explanation in previous e-mail [1].
Tricky. I believe you're right.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company