swiftwasm / swift

WebAssembly support for the Swift programming language

Home Page:https://swiftwasm.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Thread and RunLoopMode.common in not available on WASM

Kyle-Ye opened this issue · comments

commented

Encounter some Thread related WASM error recently.

import Foundation

// Works on Ubuntu and macOS
@inline(__always)
func performOnMainThread(_ block: @escaping () -> Void) {
    if Thread.isMainThread {
        block()
    } else {
        RunLoop.main.perform(inModes: [.common], block: block)
    }
}
ThreadUtils.swift:15:41: error: reference to member 'common' cannot be resolved without a contextual type
        RunLoop.main.perform(inModes: [.common], block: block)
                                        ^
ThreadUtils.swift:12:8: error: cannot find 'Thread' in scope
    if Thread.isMainThread {

Is this an expected behavior and #5548 already keeps track of the issue?

This is expected since we don't enable any RunLoop feature at this moment. Might be unblocked after porting libdispatch with threading support.