@Published and willSet vs. didSet semantics

Typically, using @Published on a property, and then subscribing to the publisher that is created will give you willSet semantics - your subscriber will be notified with the new values before the variable has actually been set.

I've observed that if my subscriber receives the notification on a different thread, such as RunLoop.main, the result is that I get didSet semantics - my subscriber is notified after the variable has been set. My question is this: how reliable is this? Can I expect this to be the case 100% of the time, or am I setting myself up for a race condition?

Take a look at this post, a lot of useful informations are there: https://forums.swift.org/t/is-this-a-bug-in-published/31292/40

@Published and willSet vs. didSet semantics
 
 
Q