buffer: don't use crazy listener::emit()
This commit is contained in:
parent
cf7e3aa448
commit
aea8132001
2 changed files with 11 additions and 4 deletions
|
|
@ -29,12 +29,17 @@ bool IHLBuffer::locked() {
|
|||
|
||||
void IHLBuffer::onBackendRelease(const std::function<void()>& fn) {
|
||||
if (m_hlEvents.backendRelease) {
|
||||
m_hlEvents.backendRelease->emit(nullptr);
|
||||
if (m_backendReleaseQueuedFn)
|
||||
m_backendReleaseQueuedFn();
|
||||
Debug::log(LOG, "backendRelease emitted early");
|
||||
}
|
||||
|
||||
m_hlEvents.backendRelease = events.backendRelease.registerListener([this, fn](std::any) {
|
||||
fn();
|
||||
m_backendReleaseQueuedFn = fn;
|
||||
|
||||
m_hlEvents.backendRelease = events.backendRelease.registerListener([this](std::any) {
|
||||
if (m_backendReleaseQueuedFn)
|
||||
m_backendReleaseQueuedFn();
|
||||
m_backendReleaseQueuedFn = nullptr;
|
||||
m_hlEvents.backendRelease.reset();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,9 @@ class IHLBuffer : public Aquamarine::IBuffer {
|
|||
} m_hlEvents;
|
||||
|
||||
private:
|
||||
int m_locks = 0;
|
||||
int m_locks = 0;
|
||||
|
||||
std::function<void()> m_backendReleaseQueuedFn;
|
||||
|
||||
friend class CHLBufferReference;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue