+ if (sb->running < sb->concurrency && sb->waiting == 0 && sb->parked) {
+ 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);
+ } else {
+ sb->state = PWQR_STATE_NONE;
+ if (!timer_pending(&sb->timer))
+ del_timer(&sb->timer);
+ }