LINUX.ORG.RU

История изменений

Исправление kvpfs, (текущая версия) :

Ещё там какие-то траблы с condition_variable, такой коде:

fn()
{
	using namespace std::literals::chrono_literals;

	auto sh_ptr = std::make_shared<Get_data_message<column_number>>();
	if (! m_shared.suspend_request.test(std::memory_order_relaxed)) {
		std::unique_lock lck{m_shared.mtx};
		m_shared.mes_queue.push(sh_ptr);
		//while (! m_shared.cv.wait_for(lck, 1s, [&sh_ptr](){
		//			return sh_ptr->processed == true;})  &&
		//	! m_shared.suspend_request.test(std::memory_order_relaxed));
	}
}

Если закомментировано, то ок, если же раскомментировать, то начинаются жалобы на обоих компиляторах. Но cv проблемах по сети инфу видел, не новость.

А можно как-то поставить в игнор одну функцию и не генерить для неё обвязку для санитайзера? Чтобы была возможность хоть что-то проверить, а так выхлоп из этого санитаро-багнутого места всё загадит.

Исходная версия kvpfs, :

Ещё там какие-то траблы с condition_variable, такой коде:

fn()
{
	using namespace std::literals::chrono_literals;

	auto sh_ptr = std::make_shared<Get_data_message<column_number>>();
	if (! m_shared.suspend_request.test(std::memory_order_relaxed)) {
		std::unique_lock lck{m_shared.mtx};
		m_shared.mes_queue.push(sh_ptr);
		//while (! m_shared.cv.wait_for(lck, 1s, [&sh_ptr](){
		//			return sh_ptr->processed == true;})  &&
		//	! m_shared.suspend_request.test(std::memory_order_relaxed));
	}
	return std::move(*sh_ptr);
}

Если закомментировано, то ок, если же раскомментировать, то начинаются жалобы на обоих компиляторах. Но cv проблемах по сети инфу видел, не новость.

А можно как-то поставить в игнор одну функцию и не генерить для неё обвязку для санитайзера? Чтобы была возможность хоть что-то проверить, а так выхлоп из этого санитаро-багнутого места всё загадит.