Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность исключений, и потеря производительности (да или нет) 
V
    Опции темы
 
Когда стоит делать функцию строго-безопасной за счет производительности
Стараться делать всегда [ 2 ]  [10.53%]
Только когда это явно требуется [ 12 ]  [63.16%]
Никогда! [ 2 ]  [10.53%]
Свой вариант [ 3 ]  [15.79%]
Всего проголосовавших: 19
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
azesmcar
Дата 9.9.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(bsa @  9.9.2010,  13:52 Найти цитируемый пост)
azesmcar, ты же не маленький, ты сам все понимаешь, что мы подразумеваем под "basic", а что под "strong". Естественно, мьютексы и железки надо возвращать в исходное состояние. Более того, тут скорее всего никакого оверхеда по производительности не возникает (только немного по коду). 

А я по этому поводу и не спрашивал ничего, просто привел пример того, когда может понадобиться строгая гарантия, в ответ на
Цитата(xvr @  9.9.2010,  12:10 Найти цитируемый пост)
точнее вообще их не вижу  



Цитата(bsa @  9.9.2010,  13:52 Найти цитируемый пост)
Твоя задача, не ставить преграды на его пути (т.е. сделать все необходимое, чтобы он мог воспользоваться стандартной схемой: создать копию, изменить ее, сделать swap с оригиналом)... 

а тут уже встает другой вопрос, для того, чтобы сделать вызов строго-безопасным пользователю моего класса может понадобиться оверхед, в разы превышающий тот, который был бы, еслиб функция сама себя обезопасила, потому как я уже сказал

Цитата(azesmcar @  9.9.2010,  08:51 Найти цитируемый пост)
я за вариант "Только когда это явно требуется". 


но мне все равно интересно как к этому относятся другие.

Это сообщение отредактировал(а) azesmcar - 9.9.2010, 13:57
PM   Вверх
xvr
Дата 9.9.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(azesmcar @  9.9.2010,  13:43 Найти цитируемый пост)
в принципе да, но скажем оставленный lock-нутым мьютекс не назовешь утечкой ресурсов. 
А это уже разрушение внутреннего состояния класса, т.к. мьютех оставлен в состоянии гарантирующим дедлок при повторном вызове метода (попытки залочить мьютех). Так что все равно basic


PM MAIL   Вверх
icecrashldr
Дата 9.9.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 5.7.2010

Репутация: нет
Всего: нет



basic
Так как к нему привыкли многие программисты.

Интерестный момент
__try {
   IoCallDriver(); //на драйвер файловой системы, с не инвалидным указателем(IoStackPtr) 
}
__except(1) {
   // Получаем access violation 
   // Здесь будет полный lock файловой системы, кроме текущего потока.
   // Не ядерный отладчик, ни само ядро, обратится не сможет.
   // Получается что надо бы было вернуть Spin lock в обратное состояние, так как что бы обработать его валидно.
   // Что бы продолжить нормальную работу, надо еще раз зайти в эту функцию с валидными данными.
}


PM MAIL WWW   Вверх
bsa
Дата 9.9.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



icecrashldr, WinAPI отличается крайней непродуманностью. И это уже давно всем известно.
PM   Вверх
icecrashldr
Дата 9.9.2010, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 5.7.2010

Репутация: нет
Всего: нет



bsa, Ну это как бы и не WinApi ... smile
Но это место где скорость имеет очень больше значения...
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.