В источнике libuv я нашел этот код:
/* The if statement lets the compiler compile it to a conditional store.
* Avoids dirtying a cache line.
*/
if (loop->stop_flag != 0)
loop->stop_flag = 0;
Может кто-нибудь объяснить это немного?
Что такое строка кэша?
Кроме того, я предполагаю, что условное хранилище представляет собой некоторую инструкцию Assembler, которая что-то проверяет и, если она удалась, записывает некоторое значение. Правильно?
Когда такая конструкция имеет смысл? Я думаю, не всегда, потому что иначе компилятор всегда будет использовать условное хранилище, верно?