`CocoaAction` thread safety
While there is no guarantees for thread-safety on Action. CocoaAction exposed public API should guarantee delivering events on main thread to ensure safe binding to UI.
IMO, #40 might be taken into consideration while discussing this.
Good point here I would go with something like this MainScheduler.ensureExecutingOnScheduler() and then throw a fatalError if not.
I am not sure how MainSchdulre.ensureExecutingOnScheduler() can be used here
MainScheduler.ensureExecutingOnScheduler() is widely used mainly to make sure that subsequent lines of code that follows will be executed on the main queue for example Drivers are executed on the main queue like this MainScheduler.ensureExecutingOnScheduler(errorMessage: errorMessage). So Action should not be that different. An alternative would be to start asking the user to provide us a Scheduler where to run the code. But this will be an overkill IMHO