With a little bit of reordering, we can make do with 3 soft_barrier objects per half_barrier, rather than 4.