aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/iconv/citrus_csmapper.c
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>2013-07-03 18:35:21 +0000
committerPeter Wemm <peter@FreeBSD.org>2013-07-03 18:35:21 +0000
commitff0b75b897dde9a8455f0c199af9a75e424c38cc (patch)
treef1e6c66ef88c635fd69918eafab29a785ec064de /lib/libc/iconv/citrus_csmapper.c
parent7900abff04765b35813cd9bab7bfa53a458d76c5 (diff)
downloadsrc-ff0b75b897dde9a8455f0c199af9a75e424c38cc.tar.gz
src-ff0b75b897dde9a8455f0c199af9a75e424c38cc.zip
Make it clear that there are three separate internal locks.
Notes
Notes: svn path=/head/; revision=252584
Diffstat (limited to 'lib/libc/iconv/citrus_csmapper.c')
-rw-r--r--lib/libc/iconv/citrus_csmapper.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libc/iconv/citrus_csmapper.c b/lib/libc/iconv/citrus_csmapper.c
index 5e0a01ad8a90..e2d10d5a4ba7 100644
--- a/lib/libc/iconv/citrus_csmapper.c
+++ b/lib/libc/iconv/citrus_csmapper.c
@@ -58,6 +58,8 @@
static struct _citrus_mapper_area *maparea = NULL;
+static pthread_rwlock_t ma_lock = PTHREAD_RWLOCK_INITIALIZER;
+
#define CS_ALIAS _PATH_CSMAPPER "/charset.alias"
#define CS_PIVOT _PATH_CSMAPPER "/charset.pivot"
@@ -314,7 +316,7 @@ get_none(struct _citrus_mapper_area *__restrict ma,
{
int ret;
- WLOCK;
+ WLOCK(&ma_lock);
if (csm_none) {
*rcsm = csm_none;
ret = 0;
@@ -329,7 +331,7 @@ get_none(struct _citrus_mapper_area *__restrict ma,
*rcsm = csm_none;
ret = 0;
quit:
- UNLOCK;
+ UNLOCK(&ma_lock);
return (ret);
}