1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
* db2/Makefile (distribute): Remove files which do not exist
	anymore.
This commit is contained in:
Ulrich Drepper
1999-06-13 13:36:34 +00:00
parent fc37035216
commit ec239360d1
141 changed files with 12490 additions and 9987 deletions

View File

@ -8,7 +8,7 @@
#include "config.h"
#ifndef lint
static const char sccsid[] = "@(#)mutex.c 10.48 (Sleepycat) 5/23/98";
static const char sccsid[] = "@(#)mutex.c 10.52 (Sleepycat) 11/8/98";
#endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES
@ -37,9 +37,12 @@ static const char sccsid[] = "@(#)mutex.c 10.48 (Sleepycat) 5/23/98";
#if defined(HAVE_FUNC_MSEM)
/*
* XXX
* Should we not use MSEM_IF_NOWAIT and let the system block for us?
* I've no idea if this will block all threads in the process or not.
* !!!
* Do not remove the MSEM_IF_NOWAIT flag. The problem is that if a single
* process makes two msem_lock() calls in a row, the second one returns an
* error. We depend on the fact that we can lock against ourselves in the
* locking subsystem, where we set up a mutex so that we can block ourselves.
* Tested on OSF1 v4.0.
*/
#define TSL_INIT(x) (msem_init(x, MSEM_UNLOCKED) == NULL)
#define TSL_INIT_ERROR 1
@ -74,6 +77,17 @@ static const char sccsid[] = "@(#)mutex.c 10.48 (Sleepycat) 5/23/98";
#define TSL_UNSET(x) _lock_clear(x)
#endif
#ifdef HAVE_FUNC_VMS
#include <builtins.h>
#ifdef __ALPHA
#define TSL_SET(tsl) (!__TESTBITSSI(tsl, 0))
#else /* __VAX */
#define TSL_SET(tsl) (!(int)_BBSSI(0, tsl))
#endif
#define TSL_UNSET(tsl) (*(tsl) = 0)
#define TSL_INIT(tsl) TSL_UNSET(tsl)
#endif
#ifdef HAVE_ASSEM_PARISC_GCC
#include "parisc.gcc"
#endif
@ -181,7 +195,7 @@ __db_mutex_lock(mp, fd)
#ifdef HAVE_SPINLOCKS
COMPQUIET(fd, 0);
for (usecs = MS(10);;) {
for (usecs = MS(1);;) {
/* Try and acquire the uncontested resource lock for N spins. */
for (nspins = mp->spins; nspins > 0; --nspins)
if (TSL_SET(&mp->tsl_resource)) {
@ -193,19 +207,17 @@ __db_mutex_lock(mp, fd)
}
mp->pid = getpid();
#endif
if (usecs == MS(10))
if (usecs == MS(1))
++mp->mutex_set_nowait;
else
++mp->mutex_set_wait;
return (0);
}
/* Yield the processor; wait 10ms initially, up to 1 second. */
if (__db_yield == NULL || __db_yield() != 0) {
(void)__db_sleep(0, usecs);
if ((usecs <<= 1) > SECOND)
usecs = SECOND;
}
/* Yield the processor; wait 1ms initially, up to 1 second. */
__os_yield(usecs);
if ((usecs <<= 1) > SECOND)
usecs = SECOND;
}
/* NOTREACHED */
@ -218,15 +230,14 @@ __db_mutex_lock(mp, fd)
for (locked = 0, mypid = getpid();;) {
/*
* Wait for the lock to become available; wait 10ms initially,
* Wait for the lock to become available; wait 1ms initially,
* up to 1 second.
*/
for (usecs = MS(10); mp->pid != 0;)
if (__db_yield == NULL || __db_yield() != 0) {
(void)__db_sleep(0, usecs);
if ((usecs <<= 1) > SECOND)
usecs = SECOND;
}
for (usecs = MS(1); mp->pid != 0;) {
__os_yield(usecs);
if ((usecs <<= 1) > SECOND)
usecs = SECOND;
}
/* Acquire an exclusive kernel lock. */
k_lock.l_type = F_WRLCK;