где найти исходники мьютекса, будущего и т. д. в Linux? - PullRequest
0 голосов
/ 04 ноября 2018

Коды контейнеров можно найти в /usr/include/c++/4.8.5/bits. Как насчет исходных кодов других библиотек, таких как mutex, future и т. Д.?

1 Ответ

0 голосов
/ 08 ноября 2018

glibc использует NPTL в Linux, а реализация мьютекса разделена на несколько каталогов:

  • nptl: высокоуровневые мьютексы потоков POSIX в исходных файлах pthread_mutex_*.c.
  • sysdeps/nptl: Документация и заглушки для оболочек futex в lowlevellock*.h.
  • sysdeps/unix/sysv/linux: futex оболочки системных вызовов в lowlevellock-futex.h.
  • Специфичные для архитектуры подкаталоги, такие как sysdeps/unix/sysv/linux/x86_64: встроенные функции ассемблера для низкоуровневых операций блокировки в lowlevellock.h и lowlevellock.S.

Большинство типов синхронизации в libstdc++ (реализация стандартной библиотеки C ++ в GCC) сами являются оболочками вокруг libpthread библиотечного компонента glibc (конечно, только в GNU / Linux).

...