]> git.ipfire.org Git - thirdparty/openldap.git/commit
ITS#9584 Track refreshing status explicitly
authorOndřej Kuzník <ondra@mistotebe.net>
Mon, 13 Sep 2021 10:23:34 +0000 (11:23 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 12 Jan 2022 21:44:42 +0000 (21:44 +0000)
commit5be1853abe5745a47ecc4d5a4bf990501037d431
treecb76ea0f331b0cd8f3d43ac35f1c6c1e31a7963d
parent9d49da5068d00318d496d6655aa586e6c2565fda
ITS#9584 Track refreshing status explicitly

A refresh can jump across multiple threads, we cannot just lock a
mutex, we need to track who that is and clear when finished.

In addition to that, fix our internal syncrepl session tracking pulling
it closer to RFC 4533, refreshDone now represents the receipt of
refreshDone flag. Refreshing status is maintained for plain refreshes
(and times when we might be starting one but don't know for sure).

We still reschedule a new sync with a delay if there is another one
running but tracking refreshes this way paves the way to being able to
wake them up if we start tracking them somehow.
servers/slapd/syncrepl.c