Try async and mainactor inner dispatch

This commit is contained in:
Max Goedjen 2025-11-25 20:45:09 -08:00
parent 3a9d18e667
commit df26e0047c
No known key found for this signature in database

View File

@ -116,16 +116,20 @@ extension SocketController {
private extension FileHandle { private extension FileHandle {
/// Ensures waitForDataInBackgroundAndNotify will be called on the main actor. /// Ensures waitForDataInBackgroundAndNotify will be called on the main actor.
@MainActor func waitForDataInBackgroundAndNotifyOnMainActor() async { func waitForDataInBackgroundAndNotifyOnMainActor() async {
await MainActor.run {
waitForDataInBackgroundAndNotify() waitForDataInBackgroundAndNotify()
} }
}
/// Ensures acceptConnectionInBackgroundAndNotify will be called on the main actor. /// Ensures acceptConnectionInBackgroundAndNotify will be called on the main actor.
/// - Parameter modes: the runloop modes to use. /// - Parameter modes: the runloop modes to use.
@MainActor func acceptConnectionInBackgroundAndNotifyOnMainActor(forModes modes: [RunLoop.Mode]? = [RunLoop.Mode.default]) async { func acceptConnectionInBackgroundAndNotifyOnMainActor(forModes modes: [RunLoop.Mode]? = [RunLoop.Mode.default]) async {
await MainActor.run {
acceptConnectionInBackgroundAndNotify(forModes: modes) acceptConnectionInBackgroundAndNotify(forModes: modes)
} }
}
} }