aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/eapache
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/eapache')
-rw-r--r--vendor/github.com/eapache/go-resiliency/LICENSE22
-rw-r--r--vendor/github.com/eapache/go-resiliency/breaker/breaker.go161
-rw-r--r--vendor/github.com/eapache/go-xerial-snappy/LICENSE21
-rw-r--r--vendor/github.com/eapache/go-xerial-snappy/snappy.go43
-rw-r--r--vendor/github.com/eapache/queue/LICENSE21
-rw-r--r--vendor/github.com/eapache/queue/queue.go102
6 files changed, 0 insertions, 370 deletions
diff --git a/vendor/github.com/eapache/go-resiliency/LICENSE b/vendor/github.com/eapache/go-resiliency/LICENSE
deleted file mode 100644
index 698a3f513..000000000
--- a/vendor/github.com/eapache/go-resiliency/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Evan Huus
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/vendor/github.com/eapache/go-resiliency/breaker/breaker.go b/vendor/github.com/eapache/go-resiliency/breaker/breaker.go
deleted file mode 100644
index f88ca7248..000000000
--- a/vendor/github.com/eapache/go-resiliency/breaker/breaker.go
+++ /dev/null
@@ -1,161 +0,0 @@
-// Package breaker implements the circuit-breaker resiliency pattern for Go.
-package breaker
-
-import (
- "errors"
- "sync"
- "sync/atomic"
- "time"
-)
-
-// ErrBreakerOpen is the error returned from Run() when the function is not executed
-// because the breaker is currently open.
-var ErrBreakerOpen = errors.New("circuit breaker is open")
-
-const (
- closed uint32 = iota
- open
- halfOpen
-)
-
-// Breaker implements the circuit-breaker resiliency pattern
-type Breaker struct {
- errorThreshold, successThreshold int
- timeout time.Duration
-
- lock sync.Mutex
- state uint32
- errors, successes int
- lastError time.Time
-}
-
-// New constructs a new circuit-breaker that starts closed.
-// From closed, the breaker opens if "errorThreshold" errors are seen
-// without an error-free period of at least "timeout". From open, the
-// breaker half-closes after "timeout". From half-open, the breaker closes
-// after "successThreshold" consecutive successes, or opens on a single error.
-func New(errorThreshold, successThreshold int, timeout time.Duration) *Breaker {
- return &Breaker{
- errorThreshold: errorThreshold,
- successThreshold: successThreshold,
- timeout: timeout,
- }
-}
-
-// Run will either return ErrBreakerOpen immediately if the circuit-breaker is
-// already open, or it will run the given function and pass along its return
-// value. It is safe to call Run concurrently on the same Breaker.
-func (b *Breaker) Run(work func() error) error {
- state := atomic.LoadUint32(&b.state)
-
- if state == open {
- return ErrBreakerOpen
- }
-
- return b.doWork(state, work)
-}
-
-// Go will either return ErrBreakerOpen immediately if the circuit-breaker is
-// already open, or it will run the given function in a separate goroutine.
-// If the function is run, Go will return nil immediately, and will *not* return
-// the return value of the function. It is safe to call Go concurrently on the
-// same Breaker.
-func (b *Breaker) Go(work func() error) error {
- state := atomic.LoadUint32(&b.state)
-
- if state == open {
- return ErrBreakerOpen
- }
-
- // errcheck complains about ignoring the error return value, but
- // that's on purpose; if you want an error from a goroutine you have to
- // get it over a channel or something
- go b.doWork(state, work)
-
- return nil
-}
-
-func (b *Breaker) doWork(state uint32, work func() error) error {
- var panicValue interface{}
-
- result := func() error {
- defer func() {
- panicValue = recover()
- }()
- return work()
- }()
-
- if result == nil && panicValue == nil && state == closed {
- // short-circuit the normal, success path without contending
- // on the lock
- return nil
- }
-
- // oh well, I guess we have to contend on the lock
- b.processResult(result, panicValue)
-
- if panicValue != nil {
- // as close as Go lets us come to a "rethrow" although unfortunately
- // we lose the original panicing location
- panic(panicValue)
- }
-
- return result
-}
-
-func (b *Breaker) processResult(result error, panicValue interface{}) {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- if result == nil && panicValue == nil {
- if b.state == halfOpen {
- b.successes++
- if b.successes == b.successThreshold {
- b.closeBreaker()
- }
- }
- } else {
- if b.errors > 0 {
- expiry := b.lastError.Add(b.timeout)
- if time.Now().After(expiry) {
- b.errors = 0
- }
- }
-
- switch b.state {
- case closed:
- b.errors++
- if b.errors == b.errorThreshold {
- b.openBreaker()
- } else {
- b.lastError = time.Now()
- }
- case halfOpen:
- b.openBreaker()
- }
- }
-}
-
-func (b *Breaker) openBreaker() {
- b.changeState(open)
- go b.timer()
-}
-
-func (b *Breaker) closeBreaker() {
- b.changeState(closed)
-}
-
-func (b *Breaker) timer() {
- time.Sleep(b.timeout)
-
- b.lock.Lock()
- defer b.lock.Unlock()
-
- b.changeState(halfOpen)
-}
-
-func (b *Breaker) changeState(newState uint32) {
- b.errors = 0
- b.successes = 0
- atomic.StoreUint32(&b.state, newState)
-}
diff --git a/vendor/github.com/eapache/go-xerial-snappy/LICENSE b/vendor/github.com/eapache/go-xerial-snappy/LICENSE
deleted file mode 100644
index 5bf3688d9..000000000
--- a/vendor/github.com/eapache/go-xerial-snappy/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Evan Huus
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/vendor/github.com/eapache/go-xerial-snappy/snappy.go b/vendor/github.com/eapache/go-xerial-snappy/snappy.go
deleted file mode 100644
index b8f8b51fc..000000000
--- a/vendor/github.com/eapache/go-xerial-snappy/snappy.go
+++ /dev/null
@@ -1,43 +0,0 @@
-package snappy
-
-import (
- "bytes"
- "encoding/binary"
-
- master "github.com/golang/snappy"
-)
-
-var xerialHeader = []byte{130, 83, 78, 65, 80, 80, 89, 0}
-
-// Encode encodes data as snappy with no framing header.
-func Encode(src []byte) []byte {
- return master.Encode(nil, src)
-}
-
-// Decode decodes snappy data whether it is traditional unframed
-// or includes the xerial framing format.
-func Decode(src []byte) ([]byte, error) {
- if !bytes.Equal(src[:8], xerialHeader) {
- return master.Decode(nil, src)
- }
-
- var (
- pos = uint32(16)
- max = uint32(len(src))
- dst = make([]byte, 0, len(src))
- chunk []byte
- err error
- )
- for pos < max {
- size := binary.BigEndian.Uint32(src[pos : pos+4])
- pos += 4
-
- chunk, err = master.Decode(chunk, src[pos:pos+size])
- if err != nil {
- return nil, err
- }
- pos += size
- dst = append(dst, chunk...)
- }
- return dst, nil
-}
diff --git a/vendor/github.com/eapache/queue/LICENSE b/vendor/github.com/eapache/queue/LICENSE
deleted file mode 100644
index d5f36dbca..000000000
--- a/vendor/github.com/eapache/queue/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Evan Huus
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE. \ No newline at end of file
diff --git a/vendor/github.com/eapache/queue/queue.go b/vendor/github.com/eapache/queue/queue.go
deleted file mode 100644
index 71d1acdf2..000000000
--- a/vendor/github.com/eapache/queue/queue.go
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki.
-Using this instead of other, simpler, queue implementations (slice+append or linked list) provides
-substantial memory and time benefits, and fewer GC pauses.
-
-The queue implemented here is as fast as it is for an additional reason: it is *not* thread-safe.
-*/
-package queue
-
-// minQueueLen is smallest capacity that queue may have.
-// Must be power of 2 for bitwise modulus: x % n == x & (n - 1).
-const minQueueLen = 16
-
-// Queue represents a single instance of the queue data structure.
-type Queue struct {
- buf []interface{}
- head, tail, count int
-}
-
-// New constructs and returns a new Queue.
-func New() *Queue {
- return &Queue{
- buf: make([]interface{}, minQueueLen),
- }
-}
-
-// Length returns the number of elements currently stored in the queue.
-func (q *Queue) Length() int {
- return q.count
-}
-
-// resizes the queue to fit exactly twice its current contents
-// this can result in shrinking if the queue is less than half-full
-func (q *Queue) resize() {
- newBuf := make([]interface{}, q.count<<1)
-
- if q.tail > q.head {
- copy(newBuf, q.buf[q.head:q.tail])
- } else {
- n := copy(newBuf, q.buf[q.head:])
- copy(newBuf[n:], q.buf[:q.tail])
- }
-
- q.head = 0
- q.tail = q.count
- q.buf = newBuf
-}
-
-// Add puts an element on the end of the queue.
-func (q *Queue) Add(elem interface{}) {
- if q.count == len(q.buf) {
- q.resize()
- }
-
- q.buf[q.tail] = elem
- // bitwise modulus
- q.tail = (q.tail + 1) & (len(q.buf) - 1)
- q.count++
-}
-
-// Peek returns the element at the head of the queue. This call panics
-// if the queue is empty.
-func (q *Queue) Peek() interface{} {
- if q.count <= 0 {
- panic("queue: Peek() called on empty queue")
- }
- return q.buf[q.head]
-}
-
-// Get returns the element at index i in the queue. If the index is
-// invalid, the call will panic. This method accepts both positive and
-// negative index values. Index 0 refers to the first element, and
-// index -1 refers to the last.
-func (q *Queue) Get(i int) interface{} {
- // If indexing backwards, convert to positive index.
- if i < 0 {
- i += q.count
- }
- if i < 0 || i >= q.count {
- panic("queue: Get() called with index out of range")
- }
- // bitwise modulus
- return q.buf[(q.head+i)&(len(q.buf)-1)]
-}
-
-// Remove removes and returns the element from the front of the queue. If the
-// queue is empty, the call will panic.
-func (q *Queue) Remove() interface{} {
- if q.count <= 0 {
- panic("queue: Remove() called on empty queue")
- }
- ret := q.buf[q.head]
- q.buf[q.head] = nil
- // bitwise modulus
- q.head = (q.head + 1) & (len(q.buf) - 1)
- q.count--
- // Resize down if buffer 1/4 full.
- if len(q.buf) > minQueueLen && (q.count<<2) == len(q.buf) {
- q.resize()
- }
- return ret
-}