spin locks
От | Bruce Momjian |
---|---|
Тема | spin locks |
Дата | |
Msg-id | 199802150527.AAA15181@candle.pha.pa.us обсуждение исходный текст |
Ответы |
Re: [HACKERS] spin locks
|
Список | pgsql-hackers |
> spin-lock.patch > > I'm not sure if this is really useful, but it seems stupid to have > a backend wasting cpu cycles in a busy loop while the process which > should release the lock is waiting for the cpu. So I added a call > to process_yield() if the spin lock can't obtained. > This has been implemented and tested only on Linux. I don't know if > other OS have process_yield(). If someone can check please do it. Massimo brings up a good point. Most of our s_lock.h locking does asm mutex loops looking for a lock. Unless we are using a multi-cpu machine, there is no way this is going to change while we are spinning. Linux has process_yield(), but most OS's don't. Is there a platform-independent way to relinquish the cpu if the first attempt at the spinlock fails? Would a select() of 1 microsecond work? -- Bruce Momjian maillist@candle.pha.pa.us
В списке pgsql-hackers по дате отправления: