Details
Description
From comments:
there is a race condition here... the active count could be higher by the time we decrease the core pool size... so the active count could end up higher than the core pool size, in which case everything will be queued... the increase case should handle this and prevent deadlock