blob: 0063171d59aff1fee67c2cf21636748a971f92f1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#pragma once
#include <cstdint>
#include <optional>
#include <vector>
#include <functional>
#include <hyprutils/os/FileDescriptor.hpp>
#include "../memory/Memory.hpp"
/*
A helper (inspired by KDE's KWin) that will release the timeline point in the dtor
*/
class CSyncTimeline;
class CSyncReleaser {
public:
CSyncReleaser(SP<CSyncTimeline> timeline, uint64_t point);
~CSyncReleaser();
// drops the releaser, will never signal anymore
void drop();
// wait for this sync_fd to signal before releasing
void addSyncFileFd(const Hyprutils::OS::CFileDescriptor& syncFd);
private:
SP<CSyncTimeline> m_timeline;
uint64_t m_point = 0;
Hyprutils::OS::CFileDescriptor m_fd;
};
|