Как правильно очистить sync.Map в Go?
В голову пришло два варианта:
cache.Range(func(key, _ interface{}) bool {
cache.Delete(key)
return true
})
cache = new(sync.Map)
Но что-то подсказывает, что второй вариант может вызвать состояние гонки, когда одна горутина будет читать, а другая в это время запустит очистку. Если так, то какое решение оптимально?