summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-02-27 18:13:05 +0000
committerEric Andersen <andersen@codepoet.org>2003-02-27 18:13:05 +0000
commit187dd78d7bd1c03fcf16e54a30314512d38e1a4a (patch)
tree9780638e5286b40da74a128c9f540a9ea720862f /libc
parentd4d6e2c50565da18253cd0d6f3332484142b6587 (diff)
Major update for pthreads, based in large part on improvements
from glibc 2.3. This should make threads much more efficient. -Erik
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/common/bits/initspin.h15
-rw-r--r--libc/sysdeps/linux/common/bits/pthreadtypes.h4
2 files changed, 9 insertions, 10 deletions
diff --git a/libc/sysdeps/linux/common/bits/initspin.h b/libc/sysdeps/linux/common/bits/initspin.h
index 257fed3c5..a19ec077e 100644
--- a/libc/sysdeps/linux/common/bits/initspin.h
+++ b/libc/sysdeps/linux/common/bits/initspin.h
@@ -3,16 +3,16 @@
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
+ Lesser General Public License for more details.
- You should have received a copy of the GNU Library General Public
+ You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
@@ -20,8 +20,9 @@
/* Initial value of a spinlock. Most platforms should use zero,
unless they only implement a "test and clear" operation instead of
the usual "test and set". */
-#define __ATOMIC_LOCK_INIT 0
+#define __LT_SPINLOCK_INIT 0
/* Macros for lock initializers, using the above definition. */
-#define __LOCK_INITIALIZER { 0, 0 }
-#define __ATOMIC_INITIALIZER { 0, 0 }
+#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT }
diff --git a/libc/sysdeps/linux/common/bits/pthreadtypes.h b/libc/sysdeps/linux/common/bits/pthreadtypes.h
index 441734c9d..3ee5c4813 100644
--- a/libc/sysdeps/linux/common/bits/pthreadtypes.h
+++ b/libc/sysdeps/linux/common/bits/pthreadtypes.h
@@ -22,13 +22,11 @@
#define __need_schedparam
#include <bits/sched.h>
-typedef int __atomic_lock_t;
-
/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
struct _pthread_fastlock
{
long int __status; /* "Free" or "taken" or head of waiting list */
- __atomic_lock_t __spinlock; /* Used by compare_and_swap emulation. Also,
+ int __spinlock; /* Used by compare_and_swap emulation. Also,
adaptive SMP lock stores spin count here. */
};