Max Khizhinsky
Max Khizhinsky
Strictly speaking you are right.
`@eugenyk #6 не собирается ассемблерный код под архитектуру i386, это поправим.` FYI - здесь собран зоопарк реализаций rdtsc для разных архитектур: https://github.com/google/benchmark/blob/v1.1.0/src/cycleclock.h#L56
`по-хорошему надо бы в зависимости от платформы определять тип счётчика и для нереализованных действително использовать кроссплатформенный, через traits его передать в контейнер. ` Да, передача через traits - хорошее решение,...
> Тесты пришлось писать свои, так-как стандартные тесты требуют более общирный интерфейс для контейнера. Это похвально, но самых главных тестов - многопоточных (stress) - я не вижу. Unit - это...
Переменная `old_head` не может быть равной `nullptr`, так как она - не указатель.
Если я нигде не наврал, то вот usecase: ```c++ bool dequeue_with(Func f) { // Предположим, очередь пуста. counted_node_ptr old_head = m_Head.load(atomics::memory_order_relaxed); // Раз очередь пуста, то m_Head.ptr == m_Tail.ptr //...
Что бросается в глаза при беглом просмотре: 1. Почему используются pthread-примитивы синхронизации (pthread_mutex, pthread_condvar)? В C++11 это все уже стандартизовано 2. Зачем обилие volatile?.. Volatile предназначен для обращения к устройствам...
Начнем с того, что ваш set на самом деле является map'ом, раз у него в явном виде задаются Key и Value через template-параметры. У set данные не разделены на key...
Думаю, это потому, что вместо того, чтобы изучить внутреннее строение библиотеки перед кодированием и: - заметить, что одинаковые контейнеры имеют очень похожий интерфейс; - подумать, почему сделано именно так; -...
Как убирать память при помощи HP, описано в алгоритме HP и в куче реализаций в libcds, основанных на HP. Есть алгоритмы структур данных, к которым HP неприменим. Но в этом...