syncobj: ensure we only add waiters on succesful checks (#9412)
timeline check only returns nullopt on ETIME_ERR , meaning the if check later on returns true if drmSyncobjTimelineWait returns anything else like EINVAL/EPERM/EACCESS etc, so actually check the returned .value() of the std::optional. also move the fd to rvalue references.
This commit is contained in:
parent
2f967037aa
commit
3eb6cb1875
2 changed files with 3 additions and 3 deletions
|
|
@ -75,7 +75,7 @@ CDRMSyncobjSurfaceResource::CDRMSyncobjSurfaceResource(SP<CWpLinuxDrmSyncobjSurf
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (materialized)
|
if (materialized.value())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
surface->lockPendingState();
|
surface->lockPendingState();
|
||||||
|
|
@ -104,7 +104,7 @@ bool CDRMSyncobjSurfaceResource::good() {
|
||||||
return resource->resource();
|
return resource->resource();
|
||||||
}
|
}
|
||||||
|
|
||||||
CDRMSyncobjTimelineResource::CDRMSyncobjTimelineResource(SP<CWpLinuxDrmSyncobjTimelineV1> resource_, CFileDescriptor fd_) : fd(std::move(fd_)), resource(resource_) {
|
CDRMSyncobjTimelineResource::CDRMSyncobjTimelineResource(SP<CWpLinuxDrmSyncobjTimelineV1> resource_, CFileDescriptor&& fd_) : fd(std::move(fd_)), resource(resource_) {
|
||||||
if UNLIKELY (!good())
|
if UNLIKELY (!good())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ class CDRMSyncobjSurfaceResource {
|
||||||
|
|
||||||
class CDRMSyncobjTimelineResource {
|
class CDRMSyncobjTimelineResource {
|
||||||
public:
|
public:
|
||||||
CDRMSyncobjTimelineResource(SP<CWpLinuxDrmSyncobjTimelineV1> resource_, Hyprutils::OS::CFileDescriptor fd_);
|
CDRMSyncobjTimelineResource(SP<CWpLinuxDrmSyncobjTimelineV1> resource_, Hyprutils::OS::CFileDescriptor&& fd_);
|
||||||
~CDRMSyncobjTimelineResource() = default;
|
~CDRMSyncobjTimelineResource() = default;
|
||||||
static SP<CDRMSyncobjTimelineResource> fromResource(wl_resource*);
|
static SP<CDRMSyncobjTimelineResource> fromResource(wl_resource*);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue