citrus_lock.h (3d4b80da4e518a0c3932e17f9afe730efa98e26c) | citrus_lock.h (ff0b75b897dde9a8455f0c199af9a75e424c38cc) |
---|---|
1/* $FreeBSD$ */ 2/*- 3 * Copyright (C) 2010 Gabor Kovesdan <gabor@FreeBSD.org> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 13 unchanged lines hidden (view full) --- 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 */ 27 28#include <pthread.h> 29 | 1/* $FreeBSD$ */ 2/*- 3 * Copyright (C) 2010 Gabor Kovesdan <gabor@FreeBSD.org> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 13 unchanged lines hidden (view full) --- 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 */ 27 28#include <pthread.h> 29 |
30/* XXX Yes, the original code has three separate file-local lock instances */ 31static pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER; 32 33#define WLOCK if (__isthreaded) \ 34 pthread_rwlock_wrlock(&lock); 35#define UNLOCK if (__isthreaded) \ 36 pthread_rwlock_unlock(&lock); | 30#define WLOCK(lock) if (__isthreaded) \ 31 pthread_rwlock_wrlock(lock); 32#define UNLOCK(lock) if (__isthreaded) \ 33 pthread_rwlock_unlock(lock); |