File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -29,12 +29,17 @@ bool IHLBuffer::locked() {
29
29
30
30
void IHLBuffer::onBackendRelease (const std::function<void ()>& fn) {
31
31
if (m_hlEvents.backendRelease ) {
32
- m_hlEvents.backendRelease ->emit (nullptr );
32
+ if (m_backendReleaseQueuedFn)
33
+ m_backendReleaseQueuedFn ();
33
34
Debug::log (LOG, " backendRelease emitted early" );
34
35
}
35
36
36
- m_hlEvents.backendRelease = events.backendRelease .registerListener ([this , fn](std::any) {
37
- fn ();
37
+ m_backendReleaseQueuedFn = fn;
38
+
39
+ m_hlEvents.backendRelease = events.backendRelease .registerListener ([this ](std::any) {
40
+ if (m_backendReleaseQueuedFn)
41
+ m_backendReleaseQueuedFn ();
42
+ m_backendReleaseQueuedFn = nullptr ;
38
43
m_hlEvents.backendRelease .reset ();
39
44
});
40
45
}
Original file line number Diff line number Diff line change @@ -37,7 +37,9 @@ class IHLBuffer : public Aquamarine::IBuffer {
37
37
} m_hlEvents;
38
38
39
39
private:
40
- int m_locks = 0 ;
40
+ int m_locks = 0 ;
41
+
42
+ std::function<void ()> m_backendReleaseQueuedFn;
41
43
42
44
friend class CHLBufferReference ;
43
45
};
You can’t perform that action at this time.
0 commit comments