Is boost :: interprocess :: shared_ptr threadsafe (e protegido por processo)?
Eu quero compartilhar dados entre threads e excluí-los automaticamente quando o último usuário terminar com eles. Isso parece funcionar, na maioria das vezes, usandoboost::interprocess::shared_ptr
em umboost::fixed_managed_shared_memory
segmento: mas nem sempre.
Então, éboost::interprocess::shared_ptr
thread (e interprocesso) - seguro?
Se estou usando minha memória compartilhada em um endereço fixo (tenho certeza de que tudo ficará bem no meu espaço de endereço de 64 bits (bem, 48 bits)), é possível usar umboost::shared_ptr
(que são seguros para threads
algum esclarecimento:
O tipo de ponteiro que eu uso é simplesvoid*
, (minha memória compartilhada é mapeada para um endereço fixo
A questão da segurança da thread é sobre a contagem de referência - ou seja, se é permitido copiar / destruir ponteiros compartilhados para a mesma coisa em diferentes processos ao mesmo tempo.Nã acesso ao mesmo ponteiro compartilhado em diferentes threads enã acesso ao pontapé.