diff --git a/Sources/JavaScriptEventLoop/WebWorkerTaskExecutor.swift b/Sources/JavaScriptEventLoop/WebWorkerTaskExecutor.swift
index 47367bc7..1078244f 100644
--- a/Sources/JavaScriptEventLoop/WebWorkerTaskExecutor.swift
+++ b/Sources/JavaScriptEventLoop/WebWorkerTaskExecutor.swift
@@ -412,8 +412,9 @@ public final class WebWorkerTaskExecutor: TaskExecutor {
                 let unmanagedContext = Unmanaged.passRetained(context)
                 contexts.append(unmanagedContext)
                 let ptr = unmanagedContext.toOpaque()
+                var thread = pthread_t(bitPattern: 0)
                 let ret = pthread_create(
-                    nil,
+                    &thread,
                     nil,
                     { ptr in
                         // Cast to a optional pointer to absorb nullability variations between platforms.
diff --git a/Tests/JavaScriptEventLoopTests/JavaScriptEventLoopTests.swift b/Tests/JavaScriptEventLoopTests/JavaScriptEventLoopTests.swift
index 866b3945..4224e2a6 100644
--- a/Tests/JavaScriptEventLoopTests/JavaScriptEventLoopTests.swift
+++ b/Tests/JavaScriptEventLoopTests/JavaScriptEventLoopTests.swift
@@ -157,7 +157,7 @@ final class JavaScriptEventLoopTests: XCTestCase {
             let result = try await promise2.value
             XCTAssertEqual(result, .string("3.0"))
         }
-        XCTAssertGreaterThanOrEqual(thenDiff, 200)
+        XCTAssertGreaterThanOrEqual(thenDiff, 150)
     }
 
     func testPromiseThenWithFailure() async throws {