summaryrefslogtreecommitdiffstats
path: root/src/wrap.c
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-12-02 17:54:05 -0500
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-12-02 17:54:05 -0500
commit0599ac42ec109e944e2cd914764258a7acd2652f (patch)
treed6d7e592450d05b1663d01db9d5863daea8c23d5 /src/wrap.c
parent28b315770bf6f40cd1f55afcef8f61b47a3eef42 (diff)
downloadslapi-nis-0599ac42ec109e944e2cd914764258a7acd2652f.tar.gz
slapi-nis-0599ac42ec109e944e2cd914764258a7acd2652f.tar.xz
slapi-nis-0599ac42ec109e944e2cd914764258a7acd2652f.zip
- use a counter to make sure we don't recurse inside the same thread,
which might cause us to try to take a read lock when we're holding the write lock, or vice-versa
Diffstat (limited to 'src/wrap.c')
-rw-r--r--src/wrap.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/wrap.c b/src/wrap.c
index b007aeb..c6062f8 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -272,3 +272,20 @@ wrap_search_internal_get_entry(Slapi_DN *dn, char **attrs,
#endif
}
+static __thread int call_level = 0;
+
+int
+wrap_get_call_level(void)
+{
+ return call_level;
+}
+int
+wrap_inc_call_level(void)
+{
+ return ++call_level;
+}
+int
+wrap_dec_call_level(void)
+{
+ return --call_level;
+}