From ced38b1b0f46f9fbdf9d37644d27bdbd2a29af1d Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Sun, 24 Aug 2025 09:57:37 +0200 Subject: disable buffer readability checks on intel (#11515) * dmabuf: disable buffer read check on intel readability checks directly on buffer fds on some intel laptops is broken, see https://gitlab.freedesktop.org/drm/intel/-/issues/9415 * sync: use rvalue ref in addwaiter doonreadable use rvalue reference in addwaiter and doonreadable, because we store the function in the SReadableWaiter a lot of the time, move it into place there when that happends or let it go out of scope after function call. --- src/managers/eventLoop/EventLoopManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/managers/eventLoop/EventLoopManager.cpp') diff --git a/src/managers/eventLoop/EventLoopManager.cpp b/src/managers/eventLoop/EventLoopManager.cpp index 3297d31e..1426e424 100644 --- a/src/managers/eventLoop/EventLoopManager.cpp +++ b/src/managers/eventLoop/EventLoopManager.cpp @@ -193,13 +193,13 @@ void CEventLoopManager::doLater(const std::function& fn) { &m_idle); } -void CEventLoopManager::doOnReadable(CFileDescriptor fd, const std::function& fn) { +void CEventLoopManager::doOnReadable(CFileDescriptor fd, std::function&& fn) { if (!fd.isValid() || fd.isReadable()) { fn(); return; } - auto& waiter = m_readableWaiters.emplace_back(makeUnique(nullptr, std::move(fd), fn)); + auto& waiter = m_readableWaiters.emplace_back(makeUnique(nullptr, std::move(fd), std::move(fn))); waiter->source = wl_event_loop_add_fd(g_pEventLoopManager->m_wayland.loop, waiter->fd.get(), WL_EVENT_READABLE, ::handleWaiterFD, waiter.get()); } -- cgit v1.2.3