Merge branch 'pkey-del' into 'master'

Fix EINVAL at pthread_key_delete

See merge request redox-os/relibc!1304
This commit is contained in:
Jeremy Soller
2026-05-11 06:12:21 -06:00
+5 -1
View File
@@ -82,11 +82,15 @@ pub unsafe extern "C" fn pthread_key_create(
#[unsafe(no_mangle)]
pub unsafe extern "C" fn pthread_key_delete(key: pthread_key_t) -> c_int {
if KEYS.lock().remove(&key).is_none() || VALUES.borrow_mut().remove(&key).is_none() {
if KEYS.lock().remove(&key).is_none() {
// We don't have to return anything, but it's not less expensive to ignore it.
return EINVAL;
}
// POSIX recommends to return EINVAL if the value does not "refers"
// to this key, but we do not map VALUES back to KEYS
VALUES.borrow_mut().remove(&key);
0
}