Size: a a a

2020 November 15

KA

Kirill 🍥 Andriyanov... in pro.cxx
угу
источник

W

W in pro.cxx
Могу ли я передавать адрес переменной стека в другой тред, и работать там с этим адресом (использую interlocked)
Такой кейс у меня есть тред в начале своей работы там определяется переменная типа int счетчик я беру её адрес и отдаю другим тредам они с ней работают и с первого треда проверяю результат, как только в счетчике нужное число делаю дела. Насколько это легально так использовать стековые переменные? Может быть лучше просто выделить память под этот инт и не извращаться?
источник

SK

Stas Koynov in pro.cxx
W
Могу ли я передавать адрес переменной стека в другой тред, и работать там с этим адресом (использую interlocked)
Такой кейс у меня есть тред в начале своей работы там определяется переменная типа int счетчик я беру её адрес и отдаю другим тредам они с ней работают и с первого треда проверяю результат, как только в счетчике нужное число делаю дела. Насколько это легально так использовать стековые переменные? Может быть лучше просто выделить память под этот инт и не извращаться?
да лучше выделить! а лучше иметь некую глобальную структуру аля окружение, в котором держать вместе все такие общие ништяки
источник

ИI

И Ivan in pro.cxx
Если стек переживет использование переменной, то можно и на стеке
источник

W

W in pro.cxx
всю жизнь программы живет этот стек
источник

W

W in pro.cxx
может ли в теории измениться адрес этой переменной?
источник

ИI

И Ivan in pro.cxx
Ну тогда норм
источник

SK

Stas Koynov in pro.cxx
W
может ли в теории измениться адрес этой переменной?
ну тыж говоришь что из скоупа функции мы не выходим! значит переменная будет 100% одна значит аддрес будет один!
источник

W

W in pro.cxx
Stas Koynov
ну тыж говоришь что из скоупа функции мы не выходим! значит переменная будет 100% одна значит аддрес будет один!
Проблемы с этой переменной, бывает такое что в определенный момент там оказывается мусор, а бывает что просто сегфолтит. Поэтому это и спрашиваю.
источник

SK

Stas Koynov in pro.cxx
W
Проблемы с этой переменной, бывает такое что в определенный момент там оказывается мусор, а бывает что просто сегфолтит. Поэтому это и спрашиваю.
тогда тебе 2ку ставим мы и говорим чтоб ты так не делал!
источник

АК

Александр Караев... in pro.cxx
W
Могу ли я передавать адрес переменной стека в другой тред, и работать там с этим адресом (использую interlocked)
Такой кейс у меня есть тред в начале своей работы там определяется переменная типа int счетчик я беру её адрес и отдаю другим тредам они с ней работают и с первого треда проверяю результат, как только в счетчике нужное число делаю дела. Насколько это легально так использовать стековые переменные? Может быть лучше просто выделить память под этот инт и не извращаться?
Вангую, что переменная умирает раньше, потому что скоуп заканчивается
источник

W

W in pro.cxx
Александр Караев
Вангую, что переменная умирает раньше, потому что скоуп заканчивается
в мейне эта переменная
источник

SK

Stas Koynov in pro.cxx
не велосипедь! если не понимаешь что делаешь и сам же нарушаешь свои гарантии!
источник

АК

Александр Караев... in pro.cxx
W
в мейне эта переменная
Пара {} и это не будет иметь значения
источник

ИI

И Ivan in pro.cxx
W
в мейне эта переменная
Поток может пережить мейн, если он детачнут
источник

W

W in pro.cxx
И Ivan
Поток может пережить мейн, если он детачнут
не может
источник

SK

Stas Koynov in pro.cxx
сделай глобальной. если так хочеться внутри функции, сделай ее статик
источник

AD

Alexander Dudin in pro.cxx
W
не может
Почему не может?
источник

W

W in pro.cxx
Alexander Dudin
Почему не может?
?
источник

AD

Alexander Dudin in pro.cxx
W
?
Почему background поток не может пережить main?
источник