core/compositor: immediately do readable if adding waiter fails for scheduling state

This commit is contained in:
Vaxry 2026-01-05 15:12:11 +01:00 committed by Vaxry
parent 686eda9d48
commit e165f84184

View file

@ -500,7 +500,10 @@ void CWLSurfaceResource::scheduleState(WP<SSurfaceState> state) {
if (state->updated.bits.acquire) {
// wait on acquire point for this surface, from explicit sync protocol
state->acquire.addWaiter([state, whenReadable]() { whenReadable(state, LOCK_REASON_FENCE); });
if (!state->acquire.addWaiter([state, whenReadable]() { whenReadable(state, LOCK_REASON_FENCE); })) {
Log::logger->log(Log::ERR, "Failed to addWaiter in CWLSurfaceResource::scheduleState");
whenReadable(state, LOCK_REASON_FENCE);
}
} else if (state->buffer && state->buffer->isSynchronous()) {
// synchronous (shm) buffers can be read immediately
m_stateQueue.unlock(state);