SMAsterisk config concurrency protection

This commit is contained in:
DanB
2016-09-08 16:45:34 +02:00
parent e55df155bb
commit db5267d919
2 changed files with 5 additions and 0 deletions

View File

@@ -78,6 +78,8 @@ func NewDefaultCGRConfig() (*CGRConfig, error) {
cfg.ConfigReloads[utils.SURETAX] <- struct{}{} // Unlock the channel
cfg.ConfigReloads[utils.DIAMETER_AGENT] = make(chan struct{}, 1)
cfg.ConfigReloads[utils.DIAMETER_AGENT] <- struct{}{} // Unlock the channel
cfg.ConfigReloads[utils.SMAsterisk] = make(chan struct{}, 1)
cfg.ConfigReloads[utils.SMAsterisk] <- struct{}{} // Unlock the channel
cgrJsonCfg, err := NewCgrJsonCfgFromReader(strings.NewReader(CGRATES_CFG_JSON))
if err != nil {
return nil, err
@@ -1098,5 +1100,7 @@ func (self *CGRConfig) ResourceLimiterCfg() *ResourceLimiterConfig {
// ToDo: fix locking here
func (self *CGRConfig) SMAsteriskCfg() *SMAsteriskCfg {
cfgChan := <-self.ConfigReloads[utils.SMAsterisk] // Lock config for read or reloads
defer func() { self.ConfigReloads[utils.SMAsterisk] <- cfgChan }()
return self.smAsteriskCfg
}

View File

@@ -330,4 +330,5 @@ const (
EVT_ACCOUNT_BALANCE_MODIFIED = "ACCOUNT_BALANCE_MODIFIED"
EVT_ACTION_TRIGGER_FIRED = "ACTION_TRIGGER_FIRED"
EVT_ACTION_TIMING_FIRED = "ACTION_TRIGGER_FIRED"
SMAsterisk = "sm_asterisk"
)