}
if (mDfsAsyncQueue) {
+ gpointer base = nullptr;
+ while ((base = g_async_queue_try_pop(mDfsAsyncQueue))) {
+ auto pItem = static_cast<std::shared_ptr<DfsInputData> *>(base);
+ auto item = std::move(*pItem);
+ delete pItem;
+ item.reset();
+ }
g_async_queue_unref(mDfsAsyncQueue);
}
{
Mv3d *handle = static_cast<Mv3d*>(data);
while(handle->mDfsIsLive) {
+ auto queueLength = static_cast<int>(g_async_queue_length(handle->mDfsAsyncQueue));
+ if (queueLength < 0)
+ continue;
+
+ for (int itemIndex = 0; itemIndex < queueLength; itemIndex++) {
+ gpointer base = g_async_queue_try_pop(handle->mDfsAsyncQueue);
+ auto pItem = static_cast<std::shared_ptr<DfsInputData> *>(base);
+ auto item = std::move(*pItem);
+ delete pItem;
+ item.reset();
+ }
+
gpointer base = g_async_queue_try_pop(handle->mDfsAsyncQueue);
if (!base) {
continue;