In Ruby, ho un caso d'uso per alcune opzioni di configurazione comuni, ad es. NOOP, TRACE, SILENT. In questo momento sto usando vars locali invece che globali e li faccio passare in giro dappertutto ed è un dolore. Sono perfettamente contento di utilizzare globals per questi, se potessi eseguire un blocco in cui le globali possono essere temporaneamente modificate e quindi ripristinate. per es.
global_configure(:TRACE=>true) do
...
end
Ma come posso rendere sicuro quel thread di codice, in modo che altri thread non possano cambiarlo globalmente?