|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
||||||
Баг с std::shared_mutex ?12.02.2021, 09:54. Показов 2841. Ответов 19
наткнулся на нечто странное. Хочется узнать, это я что-то не понимаю, либо это глюк компилятора?
пусть имеется такой синтетический пример кода
Баг заключается в следующем: При использовании компилятора MinGW 7.3.0 32-bit for C++ (под виндой) при на каждой итерации "течёт" озу и "текут" дескрипторы винды (это видно в диспетчере задач).Если не вызывать блокировку, утечки нет. 2) Если же создать объект мутекса до цикла, то утечки нет даже и с блокировкой. (В данном варианте конструктор/деструктор мутекса не вызывается каждую итерацию) 3) А вот в VS2019 всё чётко, ничего не течёт4) Тот же самый код с Qt-шным QReadWriteLock+QWriteLocker проблем не даёт 5) почему пример обозван синтетическим - вообще, в такую ситуацию довольно трудно попасть. Но я сумел Выбраться не сложно, но интересует природа бага
0
|
||||||
| 12.02.2021, 09:54 | |
|
Ответы с готовыми решениями:
19
Нужно понять, что такое shared_mutex std::regex : баг на сайте или баг компилятора? shared_mutex |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.02.2021, 16:27 | ||
|
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 12.02.2021, 17:06 [ТС] | |
|
заглянул я в исходники. Само собой, в этой каше утонул ))
Вот файл на всякий случай shared_mutex.zip обновлять компилятор пока боязно. Остальное работает - и ладно Когда буду QtCreator обновлять - выберу и его поновее.Думал, кто сталкивался на этой версии и знает, в чём беда
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 12.02.2021, 17:06 | ||
|
Не по теме: Всегда, блин, забываю, нафига он нужен. И каждый раз вспоминаю, что это, как обычно в стандартной либе все через ж**у названо. И вместо говорящего rwlock - shared mutex.
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 12.02.2021, 17:11 [ТС] | |
|
Vourhey, да по названиям вроде логично -
shared mutex / shared lock / unique lock
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.02.2021, 17:13 | ||
Сообщение было отмечено Алексей1153 как решение
Решение
1
|
||
| 12.02.2021, 17:16 | |
|
0
|
|
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 12.02.2021, 17:26 [ТС] | |
|
oleg-m1973, ещё вот нашёл нечто похожее https://sourceforge.net/p/mingw-w64/bugs/851/
при случае обновлю, короче Vourhey, общий доступ - в том смысле, что писатель может работать только один под локом, но читателей одновременно хоть сколько могут зайти, если писателя нет в данный момент. Ну, назвали, как назвали, не самый худший вариант )
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 12.02.2021, 17:28 | ||
|
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 12.02.2021, 17:30 [ТС] | |
|
а вообще, интерсные очучения - как дубиной по голове, откуда совсем не ждал. Меня неделю пилили этим багом, 32-битное приложение валилось раз в несколько дней. Сначала выяснил, что по нехватке памяти. Откуда бы ей там произойти - было непонятно. Потом сутки сидел нагружал, последовательно отключая всё любое, пока наконец не нашёл нужную строчку. После чего пару часов втыкал, что же там такое волшебное в этой строчке
Результат - рафинированный пример с багом в первом посте и недосып
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.02.2021, 17:31 | ||
|
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|||
| 12.02.2021, 17:32 | |||
|
Алексей1153, круто
![]() Добавлено через 57 секунд
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.02.2021, 17:35 | ||
|
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 12.02.2021, 17:36 | ||
|
Алексей1153, вообще для таких ситуаций есть тулы различные для детекта ликов ресурсов. Не факт, что поможет, но чем чёрт не шутит.
Добавлено через 44 секунды
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 12.02.2021, 17:42 [ТС] | |
|
Vourhey, valgring сказал, что хочет линукс
В студии вроде есть утилита, я даже пытался туда проект пересунуть ради таких высоких целей, но не осилил.а вообще, я с утечками уже лет 10 не сталкиваюсь, голым new не пользуюсь, перекрёстными шаред поинтерами не балуюсь тоже. Потому и удивлялся, как же так - неужели ещё откуда-то может течь. А оно из самого неожиданного места вылезло Добавлено через 1 минуту Не по теме: хотя нет, вот это чудо припоминаю
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 12.02.2021, 17:45 | ||
|
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 12.02.2021, 17:46 | ||
|
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
|
|
| 12.02.2021, 17:57 [ТС] | |
|
oleg-m1973, да ну, стыдно вспоминать
Если кратко -структура со всеми полями std::atomic<...> (они работали нормально), но некоторые поля были не integral, поэтому для них была накостылена оболочка с мутексом навроде атомика. Происходили копирования объектов структуры. Само копирование было прописано корректно, но мутекс хулиганил утечкамиДобавлено через 2 минуты проблема вылезла на, казалось бы, безобидной строчке вроде myset.find(key), где myset - std::set с такими структурами
0
|
|
|
Неэпический
|
||
| 14.02.2021, 18:15 | ||
|
Vourhey, название переехало из
boost::shared_mutex, как и многое другое. ![]() https://ncona.com/2019/03/read... red_mutex/
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 15.02.2021, 23:49 | ||
0
|
||
| 15.02.2021, 23:49 | |
|
Помогаю со студенческими работами здесь
20
Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri STL std::set, std::pair, std::make_pair Подходит ли shared_mutex в данном случае для одновременного доступа нескольких потоков к одному ресурсу?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|