This is a very questionable interface - what if two people want to pause at the same time and cause a pause and resume. Why not have `set_pause(self, pause_state)` or `pause()` and `resume()`?