lock-free обещает только что код не будет делать сискол мутексовый, но при этом он и полчаса может крутиться в цикле ожидания. wait-free обещает так не делать
lock-free обещает только что код не будет делать сискол мутексовый, но при этом он и полчаса может крутиться в цикле ожидания. wait-free обещает так не делать
Точнее wait-free обещает что хотя бы один трэд делает что-то полезное. Spin lock - это не единственный вариант когда нарушается такая гарантия.
https://tools.ietf.org/html/rfc2119#section-2 В этом стандарте shall и shall not эквивалентны must и must not. 2. MUST NOT This phrase, or the phrase "SHALL NOT", mean that the definition is an absolute prohibition of the specification.
А ты думаешь может отличаться значение от must not?
Некоторые считают "In addition, some identifiers are reserved for use by C ++ implementations and shall not be used otherwise; no diagnostic is required." что это нестрогая рекомендация и продолжают использовать двойные минусы в названии переменных.
Некоторые считают "In addition, some identifiers are reserved for use by C ++ implementations and shall not be used otherwise; no diagnostic is required." что это нестрогая рекомендация и продолжают использовать двойные минусы в названии переменных.
в стандарте емнип must заменили на shall. И оно имеет значение точно такое же, как и must
Есть ли примеры удачного использования виртуальных итераторов в плюсах?
Интересуют stl-подобные итераторы, достаточно будет одних лишь forward-итераторов
Попробовал простенькие forward-итераторы реализовать, заоптимизировал всё до смерти, итерация по вектору замедлилась в 3 раза (от компилятора всё что нужно в отдельном cpp файле спрятал чтобы только время итерации мерять)
А до этого как было? virtual Iterator& operator++() =0;?
Ну да, и ещё всё то же самое для !=, operator*, и без виртуальных функций (через указатели на функции, заинлайнил таблицу виртуальных вызовов фактически)