Каждая переменная выводит свой адрес два раза.
Нашел прошивку в гит репозитории, она весит 50 кб и никак не помогает
/lib/firmware/ath9k_htc/htc_9271-1.4.0.fw?[ 16.636622] usb 3-1.2: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
[ 16.636798] usbcore: registered new interface driver ath9k_htc
[ 16.672308] usb 3-1.2: firmware: direct-loading firmware ath9k_htc/htc_9271-1.4.0.fw
[ 16.955280] usb 3-1.2: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008
[ 17.207461] ath9k_htc 3-1.2:1.0: ath9k_htc: HTC initialized with 33 credits
[ 17.474622] ath9k_htc 3-1.2:1.0: ath9k_htc: FW Version: 1.4
[ 17.474627] ath9k_htc 3-1.2:1.0: FW RMW support: Onfirmware-atheros. relaxed обеспечивает только видимость изменений
https://en.cppreference.com/w/c/atomic/memory_orde...
Объяснение к memory_order_relaxed
В методе producer_maybe_push() нужно синхронизировать данные только после записи
Что здесь обозначено словом "синхронизировать"?
Тем или иным способом сделать видимыми данные для других потоков после записи (и перед чтением).
Если ошибок нет, то, вероятно, очередь работает правильно.
relaxed обеспечивает только видимость изменений самой атомарной переменной в других потоках.
В методе producer_maybe_push() нужно синхронизировать данные только после записи
Сделайте тест и погоняйте его несколько часов с разным количеством узлов.
The value of an atomic object M, as determined by evaluation B, is the value stored by some unspecified side effect A that modifies M, where B does not happen before A.
producer_maybe_push() нет никакого упорядочивания доступа к head вообще, поэтому если в ходе выполнения потока в котором вызывается producer_maybe_push() нет никаких других барьеров, то в качестве A нельзя будет найти никакой побочный эффект меняющий head. почему ошибка указывает на конструктор, а не на arr?
как мне создать пространство для массива (не выделяя дин память) и не создавать по умолчанию их?
Я ведь нигде ничего по умолчанию не создаю.
он указывает на массив: type arr[N];
static_array.
Adamos, я где-то написал что они существуют?
Моё объяснение -- "Массив -- это отдельный способ порождения типов. Имя -- это имя. Адрес -- это детали реализации".
Но я побуду адвокатом дьявола и предложу представить что-то неортодоксальное, но в то же время не противоречащее стандарту. Если у вас получится -- оно может существовать.