The addition of ApplicationState & associated mutex + condvar makes it look like the cocoa thread is significantly more complicated than it was previously. In reality, only the "ApplicationMPVInitState" state is new; the others existed implicitly.