From 1478c2de052374c6356db5513749a144c13791b1 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 7 Dec 2006 23:24:02 +0000 Subject: Major cleanup of internal mutex locking. Be more consistant in how we do things, and avoid potential deadlocks caused when a thread holding a uClibc internal lock get canceled and terminates without releasing the lock. This change also provides a single place, bits/uClibc_mutex.h, for thread libraries to modify to change all instances of internal locking. --- libc/misc/dirent/readdir_r.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'libc/misc/dirent/readdir_r.c') diff --git a/libc/misc/dirent/readdir_r.c b/libc/misc/dirent/readdir_r.c index a1d8b9a77..9493ecc0d 100644 --- a/libc/misc/dirent/readdir_r.c +++ b/libc/misc/dirent/readdir_r.c @@ -26,7 +26,7 @@ int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result) } de = NULL; - __pthread_mutex_lock(&(dir->dd_lock)); + __UCLIBC_MUTEX_LOCK(dir->dd_lock); do { if (dir->dd_size <= dir->dd_nextloc) { @@ -60,8 +60,7 @@ int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result) all_done: - __pthread_mutex_unlock(&(dir->dd_lock)); - + __UCLIBC_MUTEX_UNLOCK(dir->dd_lock); return((de != NULL)? 0 : ret); } libc_hidden_def(readdir_r) -- cgit v1.2.3