curl Removes pthread_cancel Implementation After DNS Resolution Issues
By
robin_reala
The bagel they save for the regulars. Don't skim, savour.
Summary
The curl project added pthread_cancel functionality in version 8.16.0 to handle DNS resolution timeouts by using pthreads to call getaddrinfo() in separate threads, allowing libcurl to continue other operations. However, this implementation caused significant issues and is being removed in the next release (#18540) due to problems with the pthread cancellation mechanism.
Key quotes
· 4 pulledwe released this in curl 8.16.0 and it blew up right in our faces
pthreads define "Cancelation points", a list of POSIX functions where a pthread may be cancelled
getaddrinfo() is exactly what we are interested in for libcurl. It blocks until it has resolved a name
That may hang for a long time and libcurl is unable to do anything else
You might also wanna read
Zig Devlog: Build System Rework Separates Maker and Configurer Processes
This devlog entry from the Zig programming language project announces a major rework of the build system, separating the maker process from
magiblot/tvision: A modern cross-platform port of Turbo Vision 2.0 with Unicode support
A modern, cross-platform port of Turbo Vision 2.0, the classical framework for text-based user interfaces (TUI). Originally started as a per
Why a Software Maintainer is Rejecting External Pull Requests
The article is a personal reflection from a software maintainer explaining why they are rejecting pull requests (PRs) from external contribu
GitHub Repository: Chip8 Emulator Project for Virtual Machine Emulation
The article appears to be a GitHub repository page for a Chip8 emulator project called 'navid-m/chip8emu'. The content shows GitHub's interf
10-year-old unit test with future cookie expiry date breaks Servo browser CI system
A developer shares a story about a unit test written 10 years ago for the Servo browser engine that included a cookie expiry date of April 1
Servo Browser Engine Releases First crates.io Version as Embeddable Library
Servo, the web browser engine written in Rust, has released its first crates.io version (v0.1.0), making it available as a library for devel
