Open Roman-Koshelev opened 3 years ago
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.
У меня таких аргументов и бенчмарков нет.
А при чем здесь эффективность? Очевидно он не будет лучше atomic::wait, но он точно используется в каждом проекте и каждый велосипедит как может. Разве этого не достаточно чтобы быть в стандарте?
Зачем добавлять плохие вещи, если можно добавлять хорошие?
Надо добавлять распространённые вещи которые всеми используются. Да и то что спинлок "плохая вещь" очень спорно. А зачем его повсеместно используют? У вас он не используется?
У нас он не используется, но это не важно.
Важно, что для принятия предложения международным комитетом нужна хорошая мотивация, доказательства что это полезная вещь.
В С++20 добавили барьеры и семафоры. Почему спинлок опять обошли? Непонятно...
Думаю каждый велосипедил свой спинлок (через pthread_spin или std::atomic_flag. А теперь вообще можно через std::atomic::wait)