Don’t assume that the actor prevents data races. The actor only guarantees that two pieces of code won’t run at the same time, but still, methods can be switched back and forth without any guarantee that the asynchronous method will be fully processed before calling another method.

Source: Swift Concurrency – Things They Don’t Tell You