Форум
C/C++
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, watchmaker, Вы писали: W>Здравствуйте, kotalex, Вы писали: K>>Да, есть такая функция, которая используется во всех операциях обхода бакета. Можно ссылку на код, который используется именно для [b]отфильтровывания[/b] "коллизийных" фьютексов, а не для поиска нужного бакета по ключу ? :) W>В ядре linux работа с futex не размазана по куче исходников, а вполне компактно содержится почти целиком в единственном файле. На который уже привёл ссылку в предыдущем сообщении. Пропустил? Ну вот ещё раз: [url=https://github.com/torvalds/linux/blob/9e98c678c2d6ae3a17cb2de55d17f69dddaa231b/kernel/futex.c#L409]match_futex[/url] W>А вот чуть ниже в этом же файле пример её целевого использования: https://github.com/torvalds/linux/blob/9e98c678c2d6ae3a17cb2de55d17f69dddaa231b/kernel/futex.c#L1602-L1616 W>Там неоднократно встречается шаблон из последовательности вызовов: [ccode] W>// получение бакета по фьютексу: W>hb = hash_futex(&key); W>// обход всех записей в бакете: W>plist_for_each_entry_safe(this, next, &hb->chain, list) W>// проверка на коллизии W>if (match_futex (&this->key, &key)) W>[/ccode] W>Везде результаты [tt]plist_for_each_entry*[/tt] отфильтровываются через [tt]match_futex[/tt].
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …