When you send a message from the GPUConnection::connection()->sendWithAsyncReply (or sendWithPromisedReply), the reply will always be dispatched from the main thread. It can make for some surprising behaviour when a WorkQueueMessageReceiver expect an answer on its defined work queue.
<rdar://problem/123650202>
A solution would be to have an override for `Connection::sendWithAsyncReply` that takes a SerialFunctionDispatcher on which the reply will be called on and pipe things internally to either dispatched the reply to Connection::dispatcher() or that defined SerialFunctionDispatcher.
Pull request: https://github.com/WebKit/WebKit/pull/25092
Pull request: https://github.com/WebKit/WebKit/pull/25166
Committed 275494@main (cae00d824a49): <https://commits.webkit.org/275494@main> Reviewed commits have been landed. Closing PR #25166 and removing active labels.