In the [Example](https://github.com/jonathan-beard/fifo) 1. it looks like `func_b` should be doing a `pop` and not `push`. 2. there is a race condition on `term`. That's UB, so it should probably be something like an `atomic<bool>`.
In the Example
func_bshould be doing apopand notpush.term. That's UB, so it should probably be something like anatomic<bool>.