Size: a a a

2020 November 22

JC

Julian =) Coffee in Rust Beginners
Понял
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
inb4 arc refcell
источник

SS

Slava Sokolovsky in Rust Beginners
RefCell + Arc
Первый подойдёт для внутренней мутабельности (можно и без него, конечно), а вот второй это счётчик ссылок, таким образом его можно будет спокойно мувать в async { ... }
===
Сообщением выше, собственно, это и предсказали
источник

MB

Mikail Bagishov in Rust Beginners
Почему не работает?
источник

MB

Mikail Bagishov in Rust Beginners
А, вижу, ты в другом чате написал.
Можно попробовать явно взять мутабельные ссылки на поля и внутри асинк-блоков их использовать.
источник

A

Adatan in Rust Beginners
Что делают различные вариации Ordering при работе с атомарными операциями?
источник

A

Adatan in Rust Beginners
Например, положить атомарное значение или прибавить
источник

A

Adatan in Rust Beginners
что лучше юзать для какого случая?
источник

IB

Ivan Boldyrev in Rust Beginners
Adatan
что лучше юзать для какого случая?
Это сильно зависит от того, как взаимодействуют треды.

Используй SeqCst, всё равно на x86 между ними нет разницы (кроме relaxed, кажется). А на ARM есть.
источник

A

Adatan in Rust Beginners
А если я на все операции Relaxed сделал, то что?*
источник

MB

Mikail Bagishov in Rust Beginners
Ivan Boldyrev
Это сильно зависит от того, как взаимодействуют треды.

Используй SeqCst, всё равно на x86 между ними нет разницы (кроме relaxed, кажется). А на ARM есть.
Вроде SeqCst все-таки дороже чем Acquire и Release, а вот они равны Relaxed в x86
источник

MB

Mikail Bagishov in Rust Beginners
Но конечно да, по умолчанию надо брать SeqCst
источник

IB

Ivan Boldyrev in Rust Beginners
Adatan
А если я на все операции Relaxed сделал, то что?*
Значит, на ARM отстрелишь себе ноги.

Это не та тема, которую можно разжевать ТГ с телефона. Есть куча статей, с другой стороны, так что вперёд в гугл.
источник

IB

Ivan Boldyrev in Rust Beginners
Mikail Bagishov
Вроде SeqCst все-таки дороже чем Acquire и Release, а вот они равны Relaxed в x86
Да, правильно.
источник

МП

Максим Петров... in Rust Beginners
Adatan
А если я на все операции Relaxed сделал, то что?*
Если только ты не профессионал в моделях памяти, то с большой вероятностью будет баг на одной из платформ. Судя по тому, что ты задал этот вопрос, тебе лучше использовать SeqCst до тех пор, пока не разберёшься в теме. Коротко эту тему не рассказать в чате
источник

MB

Mikail Bagishov in Rust Beginners
Adatan
А если я на все операции Relaxed сделал, то что?*
источник

A

Adatan in Rust Beginners
Уточняю вопрос (если я не хочу даже туда углубляться (мне просто нужны пару глобальных атомарных переменных)), то для операций, таких как store и fetch_add/sub на x86, юзать Relaxed - можно?
источник

MB

Mikail Bagishov in Rust Beginners
Можно, но факт что это правильно
источник

IB

Ivan Boldyrev in Rust Beginners
Adatan
Уточняю вопрос (если я не хочу даже туда углубляться (мне просто нужны пару глобальных атомарных переменных)), то для операций, таких как store и fetch_add/sub на x86, юзать Relaxed - можно?
"Можно, если тебя не интересует результат". (с)
источник

A

Adatan in Rust Beginners
ясно, ставлю SeqCst
источник