172 похожих чатов

Ладно, если всё ещё неясно, то давай совсем простой пример: struct

Qwe(Option<usize>, Vec<i32>);

fn new() -> Qwe {
Qwe(Some(0), vec![5])
}

fn read_x(stream: &mut Qwe, cancel_flag: bool) -> i32 {
let idx = stream.0.take().expect("valid Qwe");
if cancel_flag { panic!(); }
let x = stream.1[idx];
std::mem::replace(stream, Qwe::new());

x
}

А теперь попробуем эту фигню вызвать вот так:

let qwe = Arc::new(Mutex::new(Qwe::new()));
let clo = Arc::clone(&qwe);
catch_unwind(move || read_x(&mut *clo.lock().unwrap(), true));
read_x(&mut *qwe.lock().unwrap(), false);

Предскажешь результат?

1 ответов

5 просмотров

Я туго понимаю, почему паника используется, да и в целом мой парсер (в голове) раста так себе. В данном случае, по-моему, паника (из-за cancel flag)

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
Дороу! У кого-нибудь есть в загашнике проверенная функция экранирования, аналог re.escape в Python? Из доки: » Escape all the characters in pattern except ASCII letters and n...
Daniil Smolyakov
9
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта