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