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

Можно ли использовать std::timed_mutex вместо std::mutex как возможность обойти возникший

deadlock? Какая правильная семантика использования std::timed_mutex?

18 ответов

17 просмотров

Если это мьютекс с тайм-аут, то можно, и нужно, а использовать - задать тайм-аут

Семантика отличается только тем, что надо проверять, был ли тайм-аут, а что делать - это уже логика приложения

Ilya Zviagin
Если это мьютекс с тайм-аут, то можно, и нужно, а ...

По отношению к deadlock-ам есть какие то мысли?

дедлок обходится https://en.cppreference.com/w/cpp/thread/lock

^

Ilya Zviagin
В смысле? Что детально надо?

Получить оценку идеи использования std::timed_mutex как страховки от deadlock. Если try_lock_for вернул false, то mutex занят другим потоком слишком долго. Если mutex занят слишком долго, а операции под ним должны были быть очень быстрыми, то скорее всего это deadlock. В этом случае можно зафейлить операцию нуждавшуюся в mutex и попробовать попозже. Главное, что мы не зависнем на веки вечные. Я где-то ошибаюсь?

Александр Сергеевич Лизин
Получить оценку идеи использования std::timed_mute...

ты читаешь, что тебе пишут? lock решает проблему дедлока на корню. какую проблему ты сейчас решаешь, если решение уже есть?

Anatoly Shirokov
ты читаешь, что тебе пишут? lock решает проблему д...

Читаю. Я в курсе std::lock. Жду ответ по timed_mutex

Александр Сергеевич Лизин
Читаю. Я в курсе std::lock. Жду ответ по timed_mut...

проблема с timed_mutex в том, что он может не угадать таймаут

Ilya Zviagin
Это —хорошая идея.

единственный вопрос - зачем ее решать эту проблему, если она решена с помощью других средств?

Александр Сергеевич Лизин
Получить оценку идеи использования std::timed_mute...

Нет, нигде не ошибаешься, кроме того, что "это дедлок" — это потенциально может быть дедлок.

Anatoly Shirokov
единственный вопрос - зачем ее решать эту проблему...

Толь, не везде можно получить список всех мьютексов ...

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта