fis-gtm/sr_port/mutex.h

41 lines
1.3 KiB
C

/****************************************************************
* *
* Copyright 2001, 2002 Sanchez Computer Associates, Inc. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#ifndef MUTEX_H
#define MUTEX_H
#include "mutexsp.h"
#if defined(UNIX)
#define MUTEX_HARD_SPIN_COUNT 128
#elif defined(VMS)
#define MUTEX_HARD_SPIN_COUNT 1024 /* VMS mutex does not have a sleep spin loop, so compensate with larger hard spin count */
#else
#error Unsupported Platform
#endif
#define MUTEX_SLEEP_SPIN_COUNT 128
#define MUTEX_SHORT_WAIT_MS 2 /* ms. Keep this a power of 2 */
#define MUTEX_SHORT_WAIT_US (MUTEX_SHORT_WAIT_MS << 10) /* micro sec */
#define MUTEX_SPIN_SLEEP_MASK (MUTEX_SHORT_WAIT_US - 1)
#define MUTEX_WRITE_HARD_SPIN_COUNT MUTEX_HARD_SPIN_COUNT
#define MUTEX_WRITE_SLEEP_SPIN_COUNT MUTEX_SLEEP_SPIN_COUNT
#define MUTEX_WRITE_SPIN_SLEEP_MASK MUTEX_SPIN_SLEEP_MASK
#define MUTEX_MAX_OPTIMISTIC_ATTEMPTS 1024
#define MUTEX_MAX_WAIT_FOR_PROGRESS_CNTR 3
#define MUTEX_MAX_WRITE_LOCK_ATTEMPTS 8
#endif /* MUTEX_H */