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,15 +116,19 @@ 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 {
waitForDataInBackgroundAndNotify() await MainActor.run {
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 {
acceptConnectionInBackgroundAndNotify(forModes: modes) await MainActor.run {
acceptConnectionInBackgroundAndNotify(forModes: modes)
}
} }
} }