Resultados da pesquisa a pedido "memory-barriers"

2 a resposta

É possível que uma loja com memory_order_relaxed nunca alcance outros threads?

Suponha que eu tenha um tópicoAque escreve para umatomic_int x = 0;, usandox.store(1, std::memory_order_relaxed);. Sem outros métodos de sincronização, quanto tempo levaria até que outros threads pudessem ver ...

1 a resposta

Fazendo sentido das barreiras à memória

Estou tentando entender as barreiras de memória em um nível útil para programadores sem bloqueio de java.Este nível, eu sinto, está entre aprender apenas sobre voláteis e aprender sobre o trabalho de buffers de armazenamento / carga em um manual ...

1 a resposta

Como escrevo uma barreira de memória para um DSP TMS320F2812?

Eu examinei o guia do usuário do compilador TI C / C ++ v6.1 (spru514e) mas não encontrou nada.o

3 a resposta

A barreira da memória ou a operação atômica são necessárias em um loop de espera ocupada?

Considere o seguintespin_lock() implementação, originalmente deesta resposta [https://stackoverflow.com/a/32658335/3169754]: void spin_lock(volatile bool* lock) { for (;;) { // inserts an acquire memory barrier and a compiler barrier if ...

1 a resposta

Existe uma barreira de memória implícita com o relacionamento sincronizado com no thread :: join?

Eu tenho um código no trabalho que inicia vários threads que realizam algumas operações e, se algum deles falhar, eles definem a variável compartilhada comofalso. O thread principal une todos os threads de trabalho. A simulação disso é mais ...

1 a resposta

asio cadeia implícita e sincronização de dados

Quando eu leio o código-fonte asio, estou curioso sobre como asio fazendo dados sincronizados entre threads até mesmo uma vertente implícita foi feita. Estes...

5 a resposta

Compilador reordenando em torno de limites mutex?

Suponha que eu tenha minhas próprias funções não embutidas LockMutex e UnlockMutex, que estão usando algum mutex adequado - como impulso - por dentro. Como o compilador saberá não reordenar outras operações com relação às chamadas para o ...

2 a resposta

Barreira de memória pela instrução lock

Li recentemente sobre barreiras de memória e a questão da reordenação e agora tenho alguma confusão sobre isso. Considere o seguinte cenário: private object _object1 = null; private object _object2 = null; private bool _usingObject1 = false; ...

5 a resposta

Threads sincronização. Como exatamente o bloqueio torna o acesso à memória 'correto'?

Primeiro de tudo, eu sei quelock{} é açúcar sintético paraMonitor classe. (oh, syntactic açúcar Eu estava brincando com problemas simples de multithreading e descobri que não consigo entender totalmente como bloquear alguma PALAVRA arbitrária ...

5 a resposta

Por que o padrão de chamada de evento C # padrão é seguro para threads sem uma barreira de memória ou invalidação de cache? E o código semelhante?

Em C #, este é o código padrão para chamar um evento de maneira segura para threads: var handler = SomethingHappened; if(handler != null) handler(this, e);Onde, potencialmente em outro encadeamento, o método add gerado pelo ...