Resultados da pesquisa a pedido "lock-free"

3 a resposta

O volátil evita leituras ou gravações introduzidas?

Em C #,volatile palavra-chave @ garante que as leituras e gravações adquiram e liberem semântica, respectivamente. No entanto, ele diz algo sobre leituras ou gravações introduzidas? Por exemplo volatile Thing something; volatile int aNumber; ...

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á ...

5 a resposta

Garantias de progresso sem bloqueio

Curiosamente, eu descobri que muitos programadores acreditam erroneamente que "sem bloqueio" significa simplesmente "programação simultânea sem mutexes". Normalmente, há também um mal-entendido correlacionado de que o objetivo de escrever código ...

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

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

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 ...

3 a resposta

Preciso de uma barreira de memória para um sinalizador de notificação de alteração entre threads?

Eu preciso de um mecanismo de notificação de alteração muito rápido (no sentido "baixo custo para o leitor", não "baixa latência") entre os threads para atualizar um cache de leitura: A situação FioW (Writer) atualiza uma estrutura de dados (S) ...

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

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 ...