ideas icon indicating copy to clipboard operation
ideas copied to clipboard

Добавление spinlock

Open Roman-Koshelev opened this issue 4 years ago • 5 comments

В С++20 добавили барьеры и семафоры. Почему спинлок опять обошли? Непонятно...

Думаю каждый велосипедил свой спинлок (через pthread_spin или std::atomic_flag. А теперь вообще можно через std::atomic::wait)

Roman-Koshelev avatar Apr 22 '21 06:04 Roman-Koshelev

https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723

"First off, spinlocks can only be used if you actually know you're not being scheduled while using them."

Нужны очень веские аргументы и убедительные бенчмарки, что именно spinlock эффективен для решения некоторых задач. Именно он, а не std::atomic::wait, транзакционная память или lockfree.

У меня таких аргументов и бенчмарков нет.

apolukhin avatar Apr 22 '21 17:04 apolukhin

А при чем здесь эффективность? Очевидно он не будет лучше atomic::wait, но он точно используется в каждом проекте и каждый велосипедит как может. Разве этого не достаточно чтобы быть в стандарте?

Roman-Koshelev avatar Apr 22 '21 17:04 Roman-Koshelev

Зачем добавлять плохие вещи, если можно добавлять хорошие?

apolukhin avatar Apr 25 '21 14:04 apolukhin

Надо добавлять распространённые вещи которые всеми используются. Да и то что спинлок "плохая вещь" очень спорно. А зачем его повсеместно используют? У вас он не используется?

Roman-Koshelev avatar Apr 25 '21 14:04 Roman-Koshelev

У нас он не используется, но это не важно.

Важно, что для принятия предложения международным комитетом нужна хорошая мотивация, доказательства что это полезная вещь.

apolukhin avatar Apr 25 '21 14:04 apolukhin