Referência https://man7.org/linux/man-pages/man2/getrandom.2.html
Oi,
Parece-me que deve ser thread-safe, mas não consegui encontrar nenhuma documentação oficial falando sobre isso.
getrandom() em sys/random.h é sempre e necessariamente thread-safe?
Obrigado.
Geralmente é seguro assumir que chamadas de sistema são thread-safe. Veja a seguinte pergunta do Stack Overflow para mais informações:
Como posso saber se uma chamada de sistema Linux é segura para threads?
A função
getrandom
é uma chamada de sistema, pois está na seção 2 das páginas do manual do Linux, que tem o título "Manual de Chamadas de Sistema".Mesmo que não fosse uma chamada de sistema, mas sim uma função de biblioteca, já que
getrandom
não faz nada além de ler de/dev/urandom
ou/dev/random
, provavelmente seria seguro assumir que ela seria segura para threads.Observe, entretanto, que a função da biblioteca padrão
rand
(que não é uma chamada de sistema) não é segura para threads, porque ela lê e grava na memória compartilhada por todas as threads, e essa memória não é protegida por um mutex .