diff options
Diffstat (limited to 'usr/src/uts/common/sys/condvar_impl.h')
-rw-r--r-- | usr/src/uts/common/sys/condvar_impl.h | 12 |
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); \ |