Bug 261139

Summary: assertIsCurrent(WorkQueue::main()) will never assert
Product: WebKit Reporter: Jean-Yves Avenard [:jya] <jean-yves.avenard>
Component: Web Template FrameworkAssignee: Jean-Yves Avenard [:jya] <jean-yves.avenard>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Jean-Yves Avenard [:jya] 2023-09-05 02:31:24 PDT
WorkQueue::assertIsCurrent() is broken in both the Cocoa and the Generic implementation.

In WorkQueueGeneric.cpp, it uses a ThreadLikeAssertion constructed from m_threadID which isn't initialised when using the main's RunLoop [1]

And in WorkQueueCocoa.cpp, the ThreadLikeAssertion always uses the uid of the current thread [2], as such, the ThreadLikeAssertion::isCurrent() will always return true.


[1]https://searchfox.org/wubkat/rev/68e96f24aae90f5a0a5e0c56c932c93616766cc7/Source/WTF/wtf/generic/WorkQueueGeneric.cpp#91-94
[2]https://searchfox.org/wubkat/rev/68e96f24aae90f5a0a5e0c56c932c93616766cc7/Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp#114-120
Comment 1 Radar WebKit Bug Importer 2023-09-05 02:41:06 PDT
<rdar://problem/114970446>
Comment 2 Jean-Yves Avenard [:jya] 2023-09-05 06:06:33 PDT
Pull request: https://github.com/WebKit/WebKit/pull/17432
Comment 3 EWS 2023-09-05 11:17:17 PDT
Committed 267640@main (0945d4c2ea7e): <https://commits.webkit.org/267640@main>

Reviewed commits have been landed. Closing PR #17432 and removing active labels.