* Bruce Momjian
|
| Just a warning that this is not going to be easy. We have OS-specific
| code for spinlocks in include/storage/s_lock.h and
| backend/storage/buffer/s_lock.c. So each S_LOCK macro call has to have
| its test-and-set logic de-coupled with its while-lock-fail-try-again
| logic. Most of them are easy, but some like VAX:
|
| #define S_LOCK(addr) __asm__("1: bbssi $0,(%0),1b": :"r"(addr))
|
| are hard to de-couple. Now, I did not know we supported NetBSD on VAX.
| Does it work, anyone? Can I remove it?
Yes, it works. No, please don't break it. Heck, I only just got it
in in time for 6.3! :-) The not-so-busy-waiting-spinlock stuff can be
put in on a platform at a time -- I'll expand the VAX version to do
the right thing once someone has done another platform, so I can see
what's the preferred way of doing it.
-tih
--
Popularity is the hallmark of mediocrity. --Niles Crane, "Frasier"