]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[9.16] fix: dev: Fix a bug in isc_rwlock_trylock()
authorArаm Sаrgsyаn <aram@isc.org>
Wed, 8 Jan 2025 12:39:51 +0000 (12:39 +0000)
committerArаm Sаrgsyаn <aram@isc.org>
Wed, 8 Jan 2025 12:39:51 +0000 (12:39 +0000)
When isc_rwlock_trylock() fails to get a read lock because another
writer was faster, it should wake up other waiting writers in case
there are no other readers, but the current code forgets about
the currently active writer when evaluating 'cntflag'.

Unset the WRITER_ACTIVE bit in 'cntflag' before checking to see if
there are other readers, otherwise the waiting writers, if they exist,
might not wake up.

Closes #5121

Backport of MR !9937

Merge branch 'backport-aram/isc_rwlock_trylock-bugfix-9.18-9.16' into 'bind-9.16'

See merge request isc-projects/bind9!9938


Trivial merge