Contagem de Referências Não Atômica do shared_ptr do C++: Uma Surpresa em Microbenchmark

Um microbenchmark comparando estruturas de dados Rust e C++ revelou um comportamento inesperado em `shared_ptr` do C++. Em ambientes de um único thread, o GNU libstdc++ otimiza a contagem de referência do `shared_ptr` para ser não atômica se `pthread_create` não for importado. Essa otimização de desempenho, embora geralmente segura, pode levar a problemas em cenários incomuns, como quando uma biblioteca de link dinâmico é carregada por um programa de link estático. O autor investigou outras implementações de C++ (libcxx e Visual C++) e, finalmente, resolveu a discrepância de desempenho referenciando `pthread_create` em seu benchmark. A descoberta destaca as complexidades das otimizações de baixo nível e suas potenciais consequências imprevistas.