Separated benchmarks for CompositeBarrier.
diff --git a/barrier.go b/barrier.go
index 5810851..d3f442f 100644
--- a/barrier.go
+++ b/barrier.go
@@ -10,6 +10,6 @@
} else if len(upstream) == 1 {
return upstream[0]
} else {
- return NewCompositeBarrier(upstream)
+ return NewCompositeBarrier(upstream...)
}
}
diff --git a/barrier_test.go b/barrier_test.go
index 7ecfd8a..e17d31a 100644
--- a/barrier_test.go
+++ b/barrier_test.go
@@ -13,15 +13,3 @@
barrier.Load()
}
}
-
-func BenchmarkBarrierLoadMultiple(b *testing.B) {
- barrier := NewBarrier(NewCursor(), NewCursor(), NewCursor(), NewCursor())
-
- iterations := int64(b.N)
- b.ReportAllocs()
- b.ResetTimer()
-
- for i := int64(0); i < iterations; i++ {
- barrier.Load()
- }
-}
diff --git a/composite_barrier.go b/composite_barrier.go
index 67baf10..ef863f6 100644
--- a/composite_barrier.go
+++ b/composite_barrier.go
@@ -4,7 +4,7 @@
cursors []*Cursor
}
-func NewCompositeBarrier(upstream []*Cursor) *CompositeBarrier {
+func NewCompositeBarrier(upstream ...*Cursor) *CompositeBarrier {
cursors := make([]*Cursor, len(upstream))
copy(cursors, upstream)
return &CompositeBarrier{cursors}
@@ -14,9 +14,9 @@
minimum := MaxSequenceValue
for _, item := range this.cursors {
- cursor := item.Load()
- if cursor < minimum {
- minimum = cursor
+ sequence := item.Load()
+ if sequence < minimum {
+ minimum = sequence
}
}
diff --git a/composite_barrier_test.go b/composite_barrier_test.go
new file mode 100644
index 0000000..3975ec9
--- /dev/null
+++ b/composite_barrier_test.go
@@ -0,0 +1,15 @@
+package disruptor
+
+import "testing"
+
+func BenchmarkCompositeBarrierLoad(b *testing.B) {
+ barrier := NewCompositeBarrier(NewCursor(), NewCursor(), NewCursor(), NewCursor())
+
+ iterations := int64(b.N)
+ b.ReportAllocs()
+ b.ResetTimer()
+
+ for i := int64(0); i < iterations; i++ {
+ barrier.Load()
+ }
+}