| @@ -28,8 +28,8 @@ type SnowWorkerM1 struct { | |||
| _TurnBackIndex byte | |||
| _IsOverCost bool | |||
| _OverCostCountInOneTerm uint32 | |||
| _GenCountInOneTerm uint32 | |||
| _TermIndex uint32 | |||
| // _GenCountInOneTerm uint32 | |||
| // _TermIndex uint32 | |||
| sync.Mutex | |||
| } | |||
| @@ -100,8 +100,8 @@ func NewSnowWorkerM1(options *IdGeneratorOptions) ISnowWorker { | |||
| _TurnBackIndex: 0, | |||
| _IsOverCost: false, | |||
| _OverCostCountInOneTerm: 0, | |||
| _GenCountInOneTerm: 0, | |||
| _TermIndex: 0, | |||
| // _GenCountInOneTerm: 0, | |||
| // _TermIndex: 0, | |||
| } | |||
| } | |||
| @@ -115,9 +115,9 @@ func (m1 *SnowWorkerM1) BeginOverCostAction(useTimeTick int64) { | |||
| } | |||
| func (m1 *SnowWorkerM1) EndOverCostAction(useTimeTick int64) { | |||
| if m1._TermIndex > 10000 { | |||
| m1._TermIndex = 0 | |||
| } | |||
| // if m1._TermIndex > 10000 { | |||
| // m1._TermIndex = 0 | |||
| // } | |||
| } | |||
| func (m1 *SnowWorkerM1) BeginTurnBackAction(useTimeTick int64) { | |||
| @@ -131,21 +131,21 @@ func (m1 *SnowWorkerM1) EndTurnBackAction(useTimeTick int64) { | |||
| func (m1 *SnowWorkerM1) NextOverCostId() int64 { | |||
| currentTimeTick := m1.GetCurrentTimeTick() | |||
| if currentTimeTick > m1._LastTimeTick { | |||
| m1.EndOverCostAction(currentTimeTick) | |||
| // m1.EndOverCostAction(currentTimeTick) | |||
| m1._LastTimeTick = currentTimeTick | |||
| m1._CurrentSeqNumber = m1.MinSeqNumber | |||
| m1._IsOverCost = false | |||
| m1._OverCostCountInOneTerm = 0 | |||
| m1._GenCountInOneTerm = 0 | |||
| // m1._GenCountInOneTerm = 0 | |||
| return m1.CalcId(m1._LastTimeTick) | |||
| } | |||
| if m1._OverCostCountInOneTerm >= m1.TopOverCostCount { | |||
| m1.EndOverCostAction(currentTimeTick) | |||
| // m1.EndOverCostAction(currentTimeTick) | |||
| m1._LastTimeTick = m1.GetNextTimeTick() | |||
| m1._CurrentSeqNumber = m1.MinSeqNumber | |||
| m1._IsOverCost = false | |||
| m1._OverCostCountInOneTerm = 0 | |||
| m1._GenCountInOneTerm = 0 | |||
| // m1._GenCountInOneTerm = 0 | |||
| return m1.CalcId(m1._LastTimeTick) | |||
| } | |||
| if m1._CurrentSeqNumber > m1.MaxSeqNumber { | |||
| @@ -153,12 +153,12 @@ func (m1 *SnowWorkerM1) NextOverCostId() int64 { | |||
| m1._CurrentSeqNumber = m1.MinSeqNumber | |||
| m1._IsOverCost = true | |||
| m1._OverCostCountInOneTerm++ | |||
| m1._GenCountInOneTerm++ | |||
| // m1._GenCountInOneTerm++ | |||
| return m1.CalcId(m1._LastTimeTick) | |||
| } | |||
| m1._GenCountInOneTerm++ | |||
| // m1._GenCountInOneTerm++ | |||
| return m1.CalcId(m1._LastTimeTick) | |||
| } | |||
| @@ -195,12 +195,12 @@ func (m1 *SnowWorkerM1) NextNormalId() int64 { | |||
| if m1._CurrentSeqNumber > m1.MaxSeqNumber { | |||
| m1.BeginOverCostAction(currentTimeTick) | |||
| m1._TermIndex++ | |||
| // m1._TermIndex++ | |||
| m1._LastTimeTick++ | |||
| m1._CurrentSeqNumber = m1.MinSeqNumber | |||
| m1._IsOverCost = true | |||
| m1._OverCostCountInOneTerm = 1 | |||
| m1._GenCountInOneTerm = 1 | |||
| // m1._GenCountInOneTerm = 1 | |||
| return m1.CalcId(m1._LastTimeTick) | |||
| } | |||
| @@ -8,7 +8,7 @@ | |||
| #include "windows.h" | |||
| #endif | |||
| static void EndOverCostAction(uint64_t useTimeTick, snowflake *flake); | |||
| // static void EndOverCostAction(uint64_t useTimeTick, snowflake *flake); | |||
| static inline uint64_t NextOverCostId(snowflake *flake); | |||
| static inline uint64_t NextNormalId(snowflake *flake); | |||
| static inline uint64_t GetCurrentTimeTick(snowflake *flake); | |||
| @@ -121,35 +121,35 @@ void Config(snowflake *flake) | |||
| flake->Method = flake->Method; | |||
| } | |||
| static inline void EndOverCostAction(uint64_t useTimeTick, snowflake *flake) | |||
| { | |||
| if (flake->_TermIndex > 10000) | |||
| { | |||
| flake->_TermIndex = 0; | |||
| } | |||
| } | |||
| // static inline void EndOverCostAction(uint64_t useTimeTick, snowflake *flake) | |||
| // { | |||
| // if (flake->_TermIndex > 10000) | |||
| // { | |||
| // flake->_TermIndex = 0; | |||
| // } | |||
| // } | |||
| static inline uint64_t NextOverCostId(snowflake *flake) | |||
| { | |||
| uint64_t currentTimeTick = GetCurrentTimeTick(flake); | |||
| if (currentTimeTick > flake->_LastTimeTick) | |||
| { | |||
| EndOverCostAction(currentTimeTick, flake); | |||
| // EndOverCostAction(currentTimeTick, flake); | |||
| flake->_LastTimeTick = currentTimeTick; | |||
| flake->_CurrentSeqNumber = flake->MinSeqNumber; | |||
| flake->_IsOverCost = 0; | |||
| flake->_OverCostCountInOneTerm = 0; | |||
| flake->_GenCountInOneTerm = 0; | |||
| // flake->_GenCountInOneTerm = 0; | |||
| return CalcId(flake); | |||
| } | |||
| if (flake->_OverCostCountInOneTerm > flake->TopOverCostCount) | |||
| { | |||
| EndOverCostAction(currentTimeTick, flake); | |||
| // EndOverCostAction(currentTimeTick, flake); | |||
| flake->_LastTimeTick = GetNextTimeTick(flake); | |||
| flake->_CurrentSeqNumber = flake->MinSeqNumber; | |||
| flake->_IsOverCost = 0; | |||
| flake->_OverCostCountInOneTerm = 0; | |||
| flake->_GenCountInOneTerm = 0; | |||
| // flake->_GenCountInOneTerm = 0; | |||
| return CalcId(flake); | |||
| } | |||
| if (flake->_CurrentSeqNumber > flake->MaxSeqNumber) | |||
| @@ -158,11 +158,11 @@ static inline uint64_t NextOverCostId(snowflake *flake) | |||
| flake->_CurrentSeqNumber = flake->MinSeqNumber; | |||
| flake->_IsOverCost = 1; | |||
| flake->_OverCostCountInOneTerm++; | |||
| flake->_GenCountInOneTerm++; | |||
| // flake->_GenCountInOneTerm++; | |||
| return CalcId(flake); | |||
| } | |||
| flake->_GenCountInOneTerm++; | |||
| // flake->_GenCountInOneTerm++; | |||
| return CalcId(flake); | |||
| } | |||
| @@ -194,12 +194,12 @@ static inline uint64_t NextNormalId(snowflake *flake) | |||
| } | |||
| if (flake->_CurrentSeqNumber > flake->MaxSeqNumber) | |||
| { | |||
| flake->_TermIndex++; | |||
| // flake->_TermIndex++; | |||
| flake->_LastTimeTick++; | |||
| flake->_CurrentSeqNumber = flake->MinSeqNumber; | |||
| flake->_IsOverCost = 1; | |||
| flake->_OverCostCountInOneTerm = 1; | |||
| flake->_GenCountInOneTerm = 1; | |||
| // flake->_GenCountInOneTerm = 1; | |||
| return CalcId(flake); | |||
| } | |||
| return CalcId(flake); | |||
| @@ -18,8 +18,8 @@ typedef struct snowflake | |||
| uint8_t _TurnBackIndex; | |||
| uint8_t _IsOverCost; | |||
| uint32_t _OverCostCountInOneTerm; | |||
| uint32_t _GenCountInOneTerm; | |||
| uint32_t _TermIndex; | |||
| // uint32_t _GenCountInOneTerm; | |||
| // uint32_t _TermIndex; | |||
| volatile unsigned int _Lock; | |||
| } snowflake; | |||
| @@ -25,8 +25,8 @@ mut: | |||
| turnback_index byte | |||
| is_over_cost bool | |||
| overcostcount_inoneterm u32 | |||
| gencount_inoneterm u32 | |||
| term_index u32 | |||
| // gencount_inoneterm u32 | |||
| // term_index u32 | |||
| } | |||
| pub fn make_sf_m1(options &contract.IdGeneratorOptions) &contract.ISnowWorker { | |||
| @@ -78,11 +78,11 @@ pub fn make_sf_m1(options &contract.IdGeneratorOptions) &contract.ISnowWorker { | |||
| // } | |||
| fn (mut m1 SnowWorkerM1) end_over_cost_action() { | |||
| if m1.term_index > 10000 { | |||
| m1.term_index = 0 | |||
| } | |||
| } | |||
| // fn (mut m1 SnowWorkerM1) end_over_cost_action() { | |||
| // if m1.term_index > 10000 { | |||
| // m1.term_index = 0 | |||
| // } | |||
| // } | |||
| // fn (m1 &SnowWorkerM1) begin_turn_back_action(use_time_tick i64) { | |||
| @@ -95,21 +95,21 @@ fn (mut m1 SnowWorkerM1) end_over_cost_action() { | |||
| fn (mut m1 SnowWorkerM1) next_over_cost_id() u64 { | |||
| current_time_tick := m1.get_current_time_tick() | |||
| if current_time_tick > m1.last_time_tick { | |||
| m1.end_over_cost_action() | |||
| // m1.end_over_cost_action() | |||
| m1.last_time_tick = current_time_tick | |||
| m1.current_seqnumber = m1.min_seqnumber | |||
| m1.is_over_cost = false | |||
| m1.overcostcount_inoneterm = 0 | |||
| m1.gencount_inoneterm = 0 | |||
| // m1.gencount_inoneterm = 0 | |||
| return m1.calc_id() | |||
| } | |||
| if m1.overcostcount_inoneterm >= m1.top_over_cost_count { | |||
| m1.end_over_cost_action() | |||
| // m1.end_over_cost_action() | |||
| m1.last_time_tick = m1.get_next_time_tick() | |||
| m1.current_seqnumber = m1.min_seqnumber | |||
| m1.is_over_cost = false | |||
| m1.overcostcount_inoneterm = 0 | |||
| m1.gencount_inoneterm = 0 | |||
| // m1.gencount_inoneterm = 0 | |||
| return m1.calc_id() | |||
| } | |||
| if m1.current_seqnumber > m1.max_seqnumber { | |||
| @@ -117,11 +117,11 @@ fn (mut m1 SnowWorkerM1) next_over_cost_id() u64 { | |||
| m1.current_seqnumber = m1.min_seqnumber | |||
| m1.is_over_cost = true | |||
| m1.overcostcount_inoneterm++ | |||
| m1.gencount_inoneterm++ | |||
| // m1.gencount_inoneterm++ | |||
| return m1.calc_id() | |||
| } | |||
| m1.gencount_inoneterm++ | |||
| // m1.gencount_inoneterm++ | |||
| return m1.calc_id() | |||
| } | |||
| @@ -152,12 +152,12 @@ fn (mut m1 SnowWorkerM1) next_normal_id() u64 { | |||
| } | |||
| if m1.current_seqnumber > m1.max_seqnumber { | |||
| // m1.begin_over_cost_action(current_time_tick) | |||
| m1.term_index++ | |||
| // m1.term_index++ | |||
| m1.last_time_tick++ | |||
| m1.current_seqnumber = m1.min_seqnumber | |||
| m1.is_over_cost = true | |||
| m1.overcostcount_inoneterm = 1 | |||
| m1.gencount_inoneterm = 1 | |||
| // m1.gencount_inoneterm = 1 | |||
| return m1.calc_id() | |||
| } | |||