linux strace futex

linux - ¿Cuál es la diferencia entre FUTEX_WAIT y FUTEX_WAIT_PRIVATE?



strace (1)

Esta es una optimización realizada por linux / glibc para hacer futex más rápidos cuando no se comparten entre procesos. Glibc utilizará las versiones _PRIVATE de cada una de las llamadas futex a menos que el atributo PTHREAD_PROCESS_SHARED esté establecido en su mutex

Se explica con más detalle aquí: this?

Para los fines de su depuración, puede ignorar los sufijos _PRIVATE

He estado rastreando un proceso con strace y he visto entradas como:

futex(0x7ffff79b3e00, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x7ffff79b3e00, FUTEX_WAIT_PRIVATE, 2, NULL) = 0

Sin embargo, cuando miré la página de manual de futex , solo he visto entradas como FUTEX_WAIT y FUTEX_WAKE . Entonces, mi pregunta es: ¿qué significa _PRIVATE que se agrega al final de estos nombres en mi salida de strace? Por ejemplo, ¿hay alguna diferencia entre algo como FUTEX_WAKE que esté documentado en la página de FUTEX_WAKE_PRIVATE y FUTEX_WAKE_PRIVATE que veo en la salida de strace o puedo asumir que son lo mismo cuando trato de entender lo que está sucediendo con el programa? depuración