From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Reorganization of spinlock defines |
Date: | 2003-09-12 01:43:16 |
Message-ID: | 200309120143.h8C1hG306886@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
Prompted by confusion over Itanium/Opterion, I have written a patch to
improve the way we define spinlocks for platforms and cpu's. It
basically decouples the OS from the CPU spinlock code. In almost all
cases, the spinlock code cares only about the compiler and CPU, not the
OS.
The patch:
o defines HAS_TEST_AND_SET inside each spinlock routine, not in
platform-specific files
o moves slock_t defines into the spinlock routines
o remove NEED_{CPU}_TAS_ASM define because it is no longer needed
o reports a compile error if spinlocks are not defined
o adds a configure option --without-spinlocks to allow
non-spinlock compiles
Looking at the patch, I realize this is how we should have done it all
along.
It would be nice to report the lack of spinlocks in configure, rather
than during the compile, but I can't compile s_lock.h and test for
HAS_TEST_AND_SET until configure completes.
I plan to apply this to 7.4.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Attachment | Content-Type | Size |
---|---|---|
unknown_filename | text/plain | 35.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-09-12 01:58:44 | Re: massive quotes? |
Previous Message | Matthew T. O'Connor | 2003-09-11 22:50:35 | Re: Another small bug (pg_autovacuum) |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-09-12 02:23:31 | Re: Reorganization of spinlock defines |
Previous Message | Tom Lane | 2003-09-11 23:14:04 | Re: Minor verbosity increase for analyze |