destruindo um objeto singleton

Qual é a melhor maneira de destruir um objeto singleton?

caso A: Ambiente de rosca única
caso B: ambiente multiencadeado

Amostras de trechos (se houver) serão realmente úteis.

[EDIT] Não tenho um caso de uso específico, apenas estou tentando entender que, SE TIVER, o singleton deve ser usado como destruí-lo corretamente. Pelo que entendi, a partir dos comentários, existem 2 cenários possíveis:
1. Destrua o singleton quando nenhum código estiver acessando. (Use ponteiros inteligentes que cuidarão da destruição do objeto por si só usando RAII)
2. Destrua um singleton ao sair do programa, independentemente de algum código estar ou não mantendo o singleton. (destrua explicitamente excluindo a instância imediatamente antes das saídas principais)

questionAnswers(6)

yourAnswerToTheQuestion