summaryrefslogtreecommitdiff
path: root/common/lib/libprop/prop_array.c
diff options
context:
space:
mode:
authoryamt <yamt@NetBSD.org>2008-05-24 14:24:04 +0000
committeryamt <yamt@NetBSD.org>2008-05-24 14:24:04 +0000
commit6787eedebd483bef9f0aa1d6279fbaf4818c7d6b (patch)
tree364ae5d0c040c84b408bdf7055463828cffda95e /common/lib/libprop/prop_array.c
parent9b5a328100ea92808b78ee92a7c263261f32b2d5 (diff)
revert the recent "use trylock to hide locking errors" changes
and their associated changes, in particular, the following versions. prop_array.c 1.13-1.16 prop_dictionary.c 1.25-1.28 prop_object_impl.h 1.21-1.25 ok'ed by core@.
Diffstat (limited to 'common/lib/libprop/prop_array.c')
-rw-r--r--common/lib/libprop/prop_array.c22
1 files changed, 7 insertions, 15 deletions
diff --git a/common/lib/libprop/prop_array.c b/common/lib/libprop/prop_array.c
index 706ee220738..55e8e8e542e 100644
--- a/common/lib/libprop/prop_array.c
+++ b/common/lib/libprop/prop_array.c
@@ -1,4 +1,4 @@
-/* $NetBSD: prop_array.c,v 1.16 2008/05/07 10:16:41 tron Exp $ */
+/* $NetBSD: prop_array.c,v 1.17 2008/05/24 14:24:04 yamt Exp $ */
/*-
* Copyright (c) 2006, 2007 The NetBSD Foundation, Inc.
@@ -312,11 +312,10 @@ _prop_array_iterator_next_object(void *v)
struct _prop_array_iterator *pai = v;
prop_array_t pa = pai->pai_base.pi_obj;
prop_object_t po = NULL;
- bool acquired;
_PROP_ASSERT(prop_object_is_array(pa));
- acquired = _PROP_RWLOCK_TRYRDLOCK(pa->pa_rwlock);
- _PROP_RWLOCK_OWNED(pa->pa_rwlock);
+
+ _PROP_RWLOCK_RDLOCK(pa->pa_rwlock);
if (pa->pa_version != pai->pai_base.pi_version)
goto out; /* array changed during iteration */
@@ -330,9 +329,7 @@ _prop_array_iterator_next_object(void *v)
pai->pai_index++;
out:
- if (acquired) {
- _PROP_RWLOCK_UNLOCK(pa->pa_rwlock);
- }
+ _PROP_RWLOCK_UNLOCK(pa->pa_rwlock);
return (po);
}
@@ -341,18 +338,15 @@ _prop_array_iterator_reset(void *v)
{
struct _prop_array_iterator *pai = v;
prop_array_t pa = pai->pai_base.pi_obj;
- bool acquired;
_PROP_ASSERT(prop_object_is_array(pa));
- acquired = _PROP_RWLOCK_TRYRDLOCK(pa->pa_rwlock);
- _PROP_RWLOCK_OWNED(pa->pa_rwlock);
+
+ _PROP_RWLOCK_RDLOCK(pa->pa_rwlock);
pai->pai_index = 0;
pai->pai_base.pi_version = pa->pa_version;
- if (acquired) {
- _PROP_RWLOCK_UNLOCK(pa->pa_rwlock);
- }
+ _PROP_RWLOCK_UNLOCK(pa->pa_rwlock);
}
/*
@@ -508,9 +502,7 @@ prop_array_iterator(prop_array_t pa)
pai->pai_base.pi_reset = _prop_array_iterator_reset;
prop_object_retain(pa);
pai->pai_base.pi_obj = pa;
- _PROP_RWLOCK_RDLOCK(pa->pa_rwlock);
_prop_array_iterator_reset(pai);
- _PROP_RWLOCK_UNLOCK(pa->pa_rwlock);
return (&pai->pai_base);
}