Re[7]: внутренняя реализация std::mutex?
От: barney  
Дата: 17.05.18 11:03
Оценка:
N> while(!lck.test_and_set(std::memory_order_acquire))

все таки без !

занятно что CLANG 6.0 вместо lock bts
делает вот что:

.LBB0_1:                                # =>This Inner Loop Header: Depth=1
        mov     al, 1
        xchg    byte ptr [rip + lock], al
        test    al, al
        jne     .LBB0_1


смотрю на https://godbolt.org/

он xchg считает атомарной инструкцией... странно это все...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.