|
|
|
@ -52,6 +52,8 @@ func (s *stream) add(timestamp time.Time, value model.SampleValue) {
|
|
|
|
|
s.Lock()
|
|
|
|
|
defer s.Unlock()
|
|
|
|
|
|
|
|
|
|
// BUG(all): https://github.com/prometheus/prometheus/pull/265/files#r4336435.
|
|
|
|
|
|
|
|
|
|
s.values = append(s.values, model.SamplePair{
|
|
|
|
|
Timestamp: timestamp,
|
|
|
|
|
Value: value,
|
|
|
|
@ -62,6 +64,8 @@ func (s *stream) clone() model.Values {
|
|
|
|
|
s.RLock()
|
|
|
|
|
defer s.RUnlock()
|
|
|
|
|
|
|
|
|
|
// BUG(all): Examine COW technique.
|
|
|
|
|
|
|
|
|
|
clone := make(model.Values, len(s.values))
|
|
|
|
|
copy(clone, s.values)
|
|
|
|
|
|
|
|
|
@ -72,6 +76,7 @@ func (s *stream) getValueAtTime(t time.Time) model.Values {
|
|
|
|
|
s.RLock()
|
|
|
|
|
defer s.RUnlock()
|
|
|
|
|
|
|
|
|
|
// BUG(all): May be avenues for simplification.
|
|
|
|
|
l := len(s.values)
|
|
|
|
|
switch l {
|
|
|
|
|
case 0:
|
|
|
|
|