Pergunta

recente apoio do GCC para operações atômicas (como descrito aqui ) é grande, e é 90% do que precisamos . Infelizmente, alguns de nossos produtos ainda precisa ser executado no Windows e por isso precisamos operações inteiras atômicas para Windows também.

No passado, tivemos implementações costume montagem de idioma para todas as nossas plataformas, mas eu gostaria de mover todas as plataformas * nix mais de às operações do CCG apoiado e o pensamento passou pela minha cabeça que talvez haja também uma maneira mais padrão para fazer isso no Windows, bem como agora ...

Existe uma maneira oficialmente sancionada de fazer isso no Windows (que não implementá-las-se em linguagem assembly)?

Foi útil?

Solução

Você quer os Interlocked funções.

Outras dicas

Depende de qual daqueles que você precisa - Eu não acho que há um (pré-construídas) a implementação de cada um deles no Windows (exceto possivelmente dentro gcc), mas alguns deles foram em torno de um bom tempo . Windows tem InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor, e assim por diante.

GLib fornece algumas operações atômicas , e eles são conhecidos por ser executado no Windows. Você pode inspecionar a fontes para idéias ou escolher diretamente o código você precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top