Remove SpinLockFree() / S_LOCK_FREE()?

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Remove SpinLockFree() / S_LOCK_FREE()?
Дата
Msg-id 20200608225338.m5zho424w6lpwb2d@alap3.anarazel.de
обсуждение исходный текст
Ответы Re: Remove SpinLockFree() / S_LOCK_FREE()?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi,

We currently have
 *    bool SpinLockFree(slock_t *lock)
 *        Tests if the lock is free. Returns true if free, false if locked.
 *        This does *not* change the state of the lock.
and its underlying S_LOCK_FREE() operation:
 *
 *    bool S_LOCK_FREE(slock_t *lock)
 *        Tests if the lock is free. Returns true if free, false if locked.
 *        This does *not* change the state of the lock.

They are currently unused and, as far as I can tell, have never been
used outside test code /asserts. We also don't currently implement them
in the spinlock fallback code:

bool
s_lock_free_sema(volatile slock_t *lock)
{
    /* We don't currently use S_LOCK_FREE anyway */
    elog(ERROR, "spin.c does not support S_LOCK_FREE()");
    return false;
}


I also find the "free" in the name very confusing. Everytime I look at
them (which, I grant, is not that often), I have to think about what
they mean.

Thus: Let's just remove SpinLockFree() / S_LOCK_FREE()?

Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: [PATCH] Add support for choosing huge page size
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Remove SpinLockFree() / S_LOCK_FREE()?