this can now throw `InterruptedException` which previously (for `lock`) was not true; please wrap appropriately