Sometimes I need to do this: unless enough_widgets? make_more_widgets end Which is all well and good, until I start letting two or more of these codes run in parallel. If you’ve never thought about this before, what can happen is something nasty called a race condition, where two or more processes (or threads) simultaneously check …