2012-02-05 11:35:58 -05:00
|
|
|
/****************************************************************
|
|
|
|
* *
|
2012-10-29 18:54:31 -04:00
|
|
|
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
2012-02-05 11:35:58 -05:00
|
|
|
* *
|
|
|
|
* 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
|
|
|
|
|
2012-10-29 18:54:31 -04:00
|
|
|
#define MUTEXLCKALERT_INTERVAL 32 /* seconds [UNIX only] */
|
2012-02-05 11:35:58 -05:00
|
|
|
#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
|
|
|
|
|
|
|
|
#endif /* MUTEX_H */
|