From 395f7b29b48cddc0b189e3610879f82b182c5438 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Mon, 4 Aug 2014 19:10:14 +0200 Subject: [PATCH] Fix dregister not being thread safe. --- libc/dirent/dregister.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libc/dirent/dregister.cpp b/libc/dirent/dregister.cpp index 2026fd9c..1b4516cf 100644 --- a/libc/dirent/dregister.cpp +++ b/libc/dirent/dregister.cpp @@ -30,8 +30,10 @@ extern "C" pthread_mutex_t __dirname_lock; extern "C" void dregister(DIR* dir) { + pthread_mutex_lock(&__dirname_lock); dir->flags |= _DIR_REGISTERED; if ( (dir->next = __firstdir) ) dir->next->prev = dir; __firstdir = dir; + pthread_mutex_unlock(&__dirname_lock); }