Size: a a a

2020 August 14

CD

Constantine Drozdov in rust_offtopic
polunin.ai
Если ты не можешь получит доступ к мьютексу, происходит паника же
Ты успешно захватил мьютекс, начал запись в общую область и дернул панику
источник

p

polunin.ai in rust_offtopic
Ну и не забуду упомянуть что шаред мутабельное состояние лучше не использовать
источник

r

red75prime in rust_offtopic
Т-34 85
а в расте это и без уб может произойти, да?
Это везде, где есть потоки и примитивы синхронизации, может произойти без УБ
источник

RP

Roman Proskuryakov in rust_offtopic
Т-34 85
да?

If the mutex is currently locked by the same thread calling this function, it produces a deadlock (with undefined behavior). See recursive_mutex for a mutex type that allows multiple locks from the same thread.

http://www.cplusplus.com/reference/mutex/mutex/lock/
так это плюсовый дедлок. растовый дедлок другой дедлок
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
Ну и не забуду упомянуть что шаред мутабельное состояние лучше не использовать
Ага, начать писать в пайп операцию и запаниковать
источник

Т8

Т-34 85 in rust_offtopic
red75prime
Это везде, где есть потоки и примитивы синхронизации, может произойти без УБ
тогда почему в крестах это благодаря уб, а в расте и без уб отхватишь?
источник

Т8

Т-34 85 in rust_offtopic
Roman Proskuryakov
так это плюсовый дедлок. растовый дедлок другой дедлок
о, сорта дедлоков
источник

Ct

Casual tears in rust_offtopic
Constantine Drozdov
Ты успешно захватил мьютекс, начал запись в общую область и дернул панику
Тогда мьютекс перейдет в poisoned состояние и все попытки lock() тоже будут паниковать же.
источник

RP

Roman Proskuryakov in rust_offtopic
Т-34 85
о, сорта дедлоков
именно.
источник

Ct

Casual tears in rust_offtopic
Casual tears
Тогда мьютекс перейдет в poisoned состояние и все попытки lock() тоже будут паниковать же.
Ну, не факт что паниковать, ибо там Result, но в большинстве случаев это так
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
Тогда мьютекс перейдет в poisoned состояние и все попытки lock() тоже будут паниковать же.
А, отличное решение (нет)
источник

Ct

Casual tears in rust_offtopic
Constantine Drozdov
А, отличное решение (нет)
¯\_(ツ)_/¯ ну это уже вполне определенное поведение, а не UB
источник

r

red75prime in rust_offtopic
Т-34 85
тогда почему в крестах это благодаря уб, а в расте и без уб отхватишь?
Потому что поведение в С++ не определено, а в Rust не специфицировано. В С++ компилятор может вообще выкинуть m.lock();m.lock();, в расте нет
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
¯\_(ツ)_/¯ ну это уже вполне определенное поведение, а не UB
ага, как оно костыляется?
источник

Ct

Casual tears in rust_offtopic
Constantine Drozdov
ага, как оно костыляется?
Можешь пойти в сорцы посмотреть
источник

Т8

Т-34 85 in rust_offtopic
Constantine Drozdov
А, отличное решение (нет)
зато нет УБ
источник

Т8

Т-34 85 in rust_offtopic
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
ага, как оно костыляется?
Там Result возвращается. Err если не получилось получить доступ к мьютексу. Вроде так.
источник

Т8

Т-34 85 in rust_offtopic
Casual tears
¯\_(ツ)_/¯ ну это уже вполне определенное поведение, а не UB
очень помогло, спасибо
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
Там Result возвращается. Err если не получилось получить доступ к мьютексу. Вроде так.
Спасибо хоть сразу не грохнули
источник