A thread that is waiting for the fork lock when another thread forks exists only in the parent, but on macOS the child's copy of the lock still counts it. After the child unlocks its copy, pthread_rwlock_destroy() and pthread_rwlock_init...dugg (Doug E)
A getaddrinfo thread calls getaddrinfo(3) inside rb_thread_prevent_fork, but on glibc its thread exit takes the resolver configuration lock again after the thread has released the fork lock. A fork that lands then leaves the child with t...dugg (Doug E)
A thread that is waiting for the fork lock when another thread forks exists only in the parent, but on macOS the child's copy of the lock still counts it. After the child unlocks its copy, pthread_rwlock_destroy() and pthread_rwlock_init...dugg (Doug E)
Applied in changeset commit:git|e06b9da3f20455ba4cff99a7821f013b7bdde5de. ---------- Reset the fork lock in the child without unlocking it A thread that is waiting for the fork lock when another thread forks exists only in the parent, ...dugg (Doug E)
A thread that is waiting for the fork lock when another thread forks exists only in the parent, but on macOS the child's copy of the lock still counts it. After the child unlocks its copy, pthread_rwlock_destroy() and pthread_rwlock_init...dugg (Doug E)
A getaddrinfo thread calls getaddrinfo(3) inside rb_thread_prevent_fork, but on glibc its thread exit takes the resolver configuration lock again after the thread has released the fork lock. A fork that lands then leaves the child with t...dugg (Doug E)
Applied in changeset commit:git|44f7c6b00d3263c9c81af58e77eeb79eaec7bd0e. ---------- Join getaddrinfo and getnameinfo threads before fork A getaddrinfo thread calls getaddrinfo(3) inside rb_thread_prevent_fork, but on glibc its thread ...dugg (Doug E)
A getaddrinfo thread calls getaddrinfo(3) inside rb_thread_prevent_fork, but on glibc its thread exit takes the resolver configuration lock again after the thread has released the fork lock. A fork that lands then leaves the child with t...dugg (Doug E)