summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/condvar_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/condvar_impl.h')
-rw-r--r--usr/src/uts/common/sys/condvar_impl.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/usr/src/uts/common/sys/condvar_impl.h b/usr/src/uts/common/sys/condvar_impl.h
index 75c5867375..429eede4f9 100644
--- a/usr/src/uts/common/sys/condvar_impl.h
+++ b/usr/src/uts/common/sys/condvar_impl.h
@@ -20,15 +20,13 @@
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_CONDVAR_IMPL_H
#define _SYS_CONDVAR_IMPL_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* Implementation-private definitions for condition variables
*/
@@ -102,6 +100,14 @@ typedef struct cvwaitlock_s {
mutex_exit(&(_c)->cvw_lock); \
}
+#define CVW_WRITE_TO_READ(_c) { \
+ mutex_enter(&(_c)->cvw_lock); \
+ ASSERT((_c)->cvw_refcnt == -1); \
+ (_c)->cvw_refcnt = 1; \
+ cv_broadcast(&(_c)->cvw_waiter); \
+ mutex_exit(&(_c)->cvw_lock); \
+}
+
#define CVW_DESTROY(_c) { \
mutex_destroy(&(_c)->cvw_lock); \
cv_destroy(&(_c)->cvw_waiter); \