On 4/21/17 10:11, Petr Jelinek wrote: > On 21/04/17 16:09, Peter Eisentraut wrote: >> On 4/20/17 14:29, Petr Jelinek wrote: >>> + /* Find unused worker slot. */ >>> + if (!w->in_use) >>> { >>> - worker = &LogicalRepCtx->workers[slot]; >>> - break; >>> + worker = w; >>> + slot = i; >>> + } >> >> Doesn't this still need a break? Otherwise it always picks the last slot. >> > > Yes it will pick the last slot, does that matter though, is the first > one better somehow? > > We can't break because we also need to continue the counter (I think the > issue that the counter solves is probably just theoretical, but still).
I see. I think the code would be less confusing if we break the loop like before and call logicalrep_sync_worker_count() separately. > Hmm actually, maybe the if (!w->in_use) should be if (worker == NULL && > !w->in_use)? That would also do it. But it's getting a bit fiddly. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers