uint64_t n; // two 32-bit integers
return ( (uint32_t)(n >> 32) == (uint32_t)n );
Какой самый быстрый способ атомарно сравнить 32 старших бита с 32 младшими битами uint64_t?
Я думаю, что одно ужасное решение - это сделать: получить спинлок, прочитать 32 LSB, прочитать 32 MSB, сравнить для получения результата, освободить спинлок, вернуть результат. Есть ли способ сделать это без необходимости брать спинлок?