27 lines
631 B
Go
27 lines
631 B
Go
package config
|
|
|
|
import "sync"
|
|
|
|
var runtimeManager struct {
|
|
sync.RWMutex
|
|
value *ConfigManager
|
|
}
|
|
|
|
// SetRuntimeManager 注入当前进程使用的配置管理器。
|
|
func SetRuntimeManager(manager *ConfigManager) {
|
|
runtimeManager.Lock()
|
|
previous := runtimeManager.value
|
|
runtimeManager.value = manager
|
|
runtimeManager.Unlock()
|
|
if previous != nil && previous != manager {
|
|
previous.releasePendingSSL()
|
|
}
|
|
}
|
|
|
|
// CurrentManager 返回当前配置管理器;未完成分区配置初始化时返回 nil。
|
|
func CurrentManager() *ConfigManager {
|
|
runtimeManager.RLock()
|
|
defer runtimeManager.RUnlock()
|
|
return runtimeManager.value
|
|
}
|