v1.4.82 versioning

This commit is contained in:
Robin E. R. Davies
2025-07-22 22:51:28 -04:00
parent f93fcccb4e
commit 052aa681a1
7 changed files with 31 additions and 23 deletions
+12 -10
View File
@@ -143,6 +143,7 @@ bool Worker::EmitResponses()
void Worker::WaitForAllResponses()
{
// do what we can to clear the response queue in order to avoid memory/object leaks
using Clock = std::chrono::steady_clock;
auto startTime = Clock::now();
while (true)
@@ -157,11 +158,12 @@ void Worker::WaitForAllResponses()
break;
}
}
std::chrono::seconds waitDuration = std::chrono::duration_cast<std::chrono::seconds>(Clock::now()-startTime);
if (waitDuration.count() > 5) {
throw std::logic_error("Timed out waiting for a Worker task to complete.");
std::this_thread::sleep_for(std::chrono::milliseconds(20));
std::chrono::milliseconds waitDuration = std::chrono::duration_cast<std::chrono::milliseconds>(Clock::now()-startTime);
if (waitDuration.count() > 250) {
Lv2Log::error("Timed out waiting for a Worker task to complete.");
// better to leak than to terminate the application.
}
std::this_thread::sleep_for(std::chrono::milliseconds(15));
}
}
@@ -260,21 +262,16 @@ bool HostWorkerThread::StartThread()
void HostWorkerThread::Close()
{
bool sendClose = false;
{
std::lock_guard lock{submitMutex};
if (pThread) {
if (!closed)
{
closed = true;
sendClose = true;
ScheduleWorkNoLock(nullptr, 0, nullptr);
}
}
}
if (sendClose)
{
ScheduleWork(nullptr, 0, nullptr);
}
}
HostWorkerThread::~HostWorkerThread()
{
@@ -302,6 +299,11 @@ LV2_Worker_Status HostWorkerThread::ScheduleWork(Worker *worker, size_t size, co
{
exiting = true;
}
return ScheduleWorkNoLock(worker, size, data);
}
LV2_Worker_Status HostWorkerThread::ScheduleWorkNoLock(Worker *worker, size_t size, const void *data)
{
if (requestRingBuffer.writeSpace() < sizeof(worker) + sizeof(size) + size)
{