Size: a a a

2020 August 18

AT

Anatoly Tomilov in pro.cxx
Andrei K
На архитектурах где байт 8 бит, там 256 значений.
а зачем мне 256 значений, мне одного бита на самом деле хватит для спинлока
источник

AK

Andrei K in pro.cxx
Anatoly Tomilov
а зачем мне 256 значений, мне одного бита на самом деле хватит для спинлока
Ну ок. И будет очень бесполезный и медленный спинлок. Я призываю почитать как они на самом деле используются и что под капотом у этих объектов
источник

AK

Andrei K in pro.cxx
Зачем там счётчики и всё такое.
источник

AK

Andrei K in pro.cxx
Александр Караев
выравнивание зависит от контекста, в котором используется объект, а требования на тип - это уже что-то не по стандарту
По стандарту нет требований на имплементацию. Мьютекс может быть хотб килобайт.
источник

AK

Andrei K in pro.cxx
Вопрос был не про стандарт, а про де-факто имплементацию.
источник

AK

Andrei K in pro.cxx
На винде критическая секция кроме самого 64 бит спин-каунтера содержит еще хендлы треда, семафора, глубину рекурсии
источник

AK

Andrei K in pro.cxx
Подозреваю на линуксе там такого же характера данные.
источник

АК

Александр Караев... in pro.cxx
Andrei K
По стандарту нет требований на имплементацию. Мьютекс может быть хотб килобайт.
да причем тут мьютекс, я говорю про произвольные объекты (однобайтовые и многобайтовые)
источник

AN

Alexander N in pro.cxx
Спинлок на основе cmpxchg кстати я так понял может быть построен
источник

AK

Andrei K in pro.cxx
Александр Караев
да причем тут мьютекс, я говорю про произвольные объекты (однобайтовые и многобайтовые)
Я всё еще не понимаю претензию. Я сказал, однобайтовых объектов в языке мало. Я не сказал что их нет.
источник

АК

Александр Караев... in pro.cxx
Andrei K
Я всё еще не понимаю претензию. Я сказал, однобайтовых объектов в языке мало. Я не сказал что их нет.
однобайтовых объектов в стандартной библиотеке процентов 95
источник

AK

Andrei K in pro.cxx
Andrei K
Я всё еще не понимаю претензию. Я сказал, однобайтовых объектов в языке мало. Я не сказал что их нет.
И ожидать, что примитив синхронизации окажется таким — это очень смело.
источник

AK

Andrei K in pro.cxx
Александр Караев
однобайтовых объектов в стандартной библиотеке процентов 95
Сколько из этих однобайтовых объектов будут реифицироваться в код?
источник

АК

Александр Караев... in pro.cxx
Andrei K
Сколько из этих однобайтовых объектов будут реифицироваться в код?
не имеет значения
источник

AK

Andrei K in pro.cxx
Я понимаю что структуры-тэги все занимают по байту. Но они никогда не попадают в бинарь.
источник

AK

Andrei K in pro.cxx
Насчёт того почему спинлок не может быть построен на одном байте я уже ответил. Дело в инструкциях.
источник

AK

Andrei K in pro.cxx
Для cmpxchg насколько мне известно нет опкода, который берёт al аргументом.
источник

AK

Andrei K in pro.cxx
А если б и был более оптимальный спинлок получится, если там честно считать лок-каунты, которых явно может быть много, пока тред в него долбится.
источник

T

Ternvein in pro.cxx
Ты ещё на msvc попробуй. ;)
источник

AT

Anatoly Tomilov in pro.cxx
Ternvein
Ты ещё на msvc попробуй. ;)
80
источник