silly question. i'd overlooked that it was always the same element of the runq array that was locked even though there's one per level.