Форум: "Начинающим";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
ВнизБезопасная загрузка библиотеки. Найти похожие ветки
← →
Riply © (2007-12-21 19:56) [0]Здравствуйте !
Вот выяснилось, что не умею работать с GetModuleHandleEx.
В Help`е написано:
"If dwFlags contains GET_MODULE_HANDLE_EX_UNCHANGED_REFCOUNT, this function
must be used carefully in a multithreaded application."
Это как понимать ? Неужели они хотят сказать,
что если не использовать флаг GET_MODULE_HANDLE_EX_UNCHANGED_REFCOUNT,
то GetModuleHandleEx можно использовать "не аккуратно", или я "смотрю в книжку, а вижу ..." ?
:)
← →
Германн © (2007-12-21 19:58) [1]
> не аккуратно
Ты просто "передергиваешь".
← →
Riply © (2007-12-21 20:01) [2]> [1] Германн © (21.12.07 19:58)
> Ты просто "передергиваешь".
Где это "передергиваешь" ?
Из каких соображений оговорено условие: "If dwFlags contains " ?
← →
Германн © (2007-12-21 20:03) [3]
> Где это "передергиваешь" ?
В применении оператора NOT к словам must be used carefully.
← →
Riply © (2007-12-21 20:05) [4]> [3] Германн © (21.12.07 20:03)
> В применении оператора NOT к словам must be used carefully.
Значит у меня проблеммы с английским.
Переведи мне, пожалуйста, их высказывание.
← →
guav © (2007-12-21 20:55) [5]Они просто намекают, что если в другом треде вызовут FreeLibrary, то может получится хендл, который уже не валидный, без видимых вызовов FreeLibrary в вызывающем GetModuleHandleEx.
Предупреждение уместное.
← →
Riply © (2007-12-21 21:09) [6]> [5] guav © (21.12.07 20:55)
> Предупреждение уместное.
То что оно уместное это понятно. Вопрос был в том, почему оно (предупреждение),
сделано только для флага GET_MODULE_HANDLE_EX_UNCHANGED_REFCOUNT.
Неужели без него я не могу попасть в неприятную ситуацию, связанную с "борьбой" нитей ?
← →
guav © (2007-12-21 21:17) [7]> [6] Riply © (21.12.07 21:09)
Подсчёт ссылок потокобезопасен, причём не только здесь, но и почти всегда он реализован потокобезопасно. Ну то есть через InterlockedIncrement / InterlockedDecrement или аналоги.
Соответственно при использовании рефкаунтинга у тебя либо валидный хендл либо ошибка, race condition при одновременном FreeLibrary из другой нити не будет.
← →
Riply © (2007-12-21 21:47) [8]> [7] guav © (21.12.07 21:17)
> Соответственно при использовании рефкаунтинга у тебя либо валидный хендл либо ошибка,
> race condition при одновременном FreeLibrary из другой нити не будет.
Спасибо :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.064 c