mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-16 05:39:54 +05:00
SMAsterisk config concurrency protection
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user