(force bool)
| 664 | } |
| 665 | |
| 666 | func (s *Session) flushOpStats(force bool) { |
| 667 | var nano = time.Now().UnixNano() |
| 668 | if !force { |
| 669 | const period = int64(time.Millisecond) * 100 |
| 670 | if d := nano - s.stats.flush.nano; d < period { |
| 671 | return |
| 672 | } |
| 673 | } |
| 674 | s.stats.flush.nano = nano |
| 675 | |
| 676 | incrOpTotal(s.stats.total.Swap(0)) |
| 677 | incrOpFails(s.stats.fails.Swap(0)) |
| 678 | for _, e := range s.stats.opmap { |
| 679 | if e.calls.Int64() != 0 || e.fails.Int64() != 0 { |
| 680 | incrOpStats(e) |
| 681 | } |
| 682 | } |
| 683 | s.stats.flush.n++ |
| 684 | |
| 685 | if len(s.stats.opmap) <= 32 { |
| 686 | return |
| 687 | } |
| 688 | if (s.stats.flush.n % 16384) == 0 { |
| 689 | s.stats.opmap = make(map[string]*opStats, 32) |
| 690 | } |
| 691 | } |
no test coverage detected