Resultados da pesquisa a pedido "lock-free"

1 a resposta

Troca ou compare_and_exchange lê o último valor em ordem de modificação?

estou lendoConcorrência em C ++ em Ação por Anthony Williams. Na seção "Compreendendo o Pedido Relaxado", ele tem:Há algumas coisas adicionais que ...

1 a resposta

Problemas com boost :: lockfree :: queue na memória compartilhada (boost 1.53, gcc 4.7.2 / clang 3.0-6ubuntu3)

1 a resposta

/boost/lockfree/queue.hpp: error: falha na asserção estática: (boost :: has_trivial_destructor <T> :: value)

1 a resposta

Sincronização de IPC de memória compartilhada (sem bloqueio)

Considere o seguinte cenário: Requisitos: Servidor Intel x64 (vários soquetes de CPU => NUMA)Ubuntu 12, GCC 4.6Dois processos que compartilham grandes quantidades de dados na memória compartilhada (nomeada)Cenário clássico produtor-consumidorA ...

1 a resposta

aumentar o acesso à memória de cache spsc_queue do lockfree

Eu preciso estar extremamente preocupado com a velocidade / latência no meu atual projeto multiencadeado. O acesso ao cache é algo que estou tentando entender melhor. E não estou claro como as filas sem bloqueio (como o boost :: lockfree :: ...

1 a resposta

Adquira / libere semântica com armazenamentos não temporais em x64

Eu tenho algo como: if (f = acquire_load() == ) { ... use Foo }e: auto f = new Foo(); release_store(f)Você pode imaginar facilmente uma implementação de adquirir_load e release_store que usa atômica com load (memory_order_acquire) e store ...

1 a resposta

Ponteiros marcados para lista lockFree em C

Estou tentando usar ponteiros marcados para manipular as operações livres de bloqueio em uma lista, a fim de impedir a comparação e troca (CAS) de passar, se algum outro segmento operou na lista durante esta transação. A estrutura do meu nó e o ...

1 a resposta

Como posso implementar o contador ABA com c ++ 11 CAS?

Estou implementando uma fila sem bloqueio com base nestealgoritmo [http://www.cs.rochester.edu/research/synchronization/pseudocode/queues.html], que usa um contador para resolver o problema ABA. Mas não sei como implementar esse contador com c ++ ...

1 a resposta

is_lock_free () retornou false após a atualização para o MacPorts gcc 7.3

Anteriormente, com o Apple LLVM 9.1.0,is_lock_free() em estruturas de 128 bits retornaram true. Ter completostd::optional suporte, atualizei para o MacPorts gcc 7.3. Durante minha primeira tentativa de compilação, encontrei esse erro notório do ...

2 a resposta

O que acontece quando diferentes núcleos da CPU gravam no mesmo endereço de RAM sem sincronização?

Vamos supor que 2 núcleos estão tentando gravar valores diferentes no mesmo endereço de RAM (1 byte), no mesmo momento (mais-menos eta) e sem usar instruções intertravadas ou barreiras de memória. O que acontece nesse caso e qual valor será ...