Every developer may make wrong decisions... But I cannot find any description in the Apple's documentation of RunLoop that states how calling run() would work in the main thread which is already managed by RunLoop. I should have used semaphore and DispatchQueue > If you are working with some async tasks, never try to use them synchronously. Using semaphore would cause many more problems, as you may already know. Anyway, changes of undocumented behavior might be intentional or not intentional, you can challenge with sending a feedback to Apple.
Topic:
App & System Services
SubTopic:
Core OS
Tags: