sb->running += running_delta;
if (sb->running < sb->concurrency && sb->waiting == 0 && sb->parked) {
+ sb->has_pollin = 0;
pwqr_arm_timer(sb, PWQR_STATE_UC, PWQR_UC_DELAY);
} else if (sb->running > sb->concurrency) {
- pwqr_arm_timer(sb, PWQR_STATE_OC, PWQR_OC_DELAY);
+ if (!sb->has_pollin)
+ pwqr_arm_timer(sb, PWQR_STATE_OC, PWQR_OC_DELAY);
} else {
+ sb->has_pollin = 0;
sb->state = PWQR_STATE_NONE;
if (!timer_pending(&sb->timer))
del_timer(&sb->timer);