Skip to content

Commit ee5328d

Browse files
decrease yield() frequency during direct hand-off attempts
1 parent 1da3a33 commit ee5328d

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@ public void requite(final T bagEntry)
187187
{
188188
bagEntry.setState(STATE_NOT_IN_USE);
189189

190-
for (var i = 0; waiters.get() > 0; i++) {
190+
for (int i = 1, waiting = waiters.get(); waiting > 0; i++, waiting = waiters.get()) {
191191
if (bagEntry.getState() != STATE_NOT_IN_USE || handoffQueue.offer(bagEntry)) {
192192
return;
193193
}
194-
else if ((i & 0xff) == 0xff) {
194+
else if ((i & 0xff) == 0xff || (waiting > 1 && i % waiting == 0)) {
195195
parkNanos(MICROSECONDS.toNanos(10));
196196
}
197197
else {

0 commit comments

Comments
 (0)