diff options
author | Valery Piashchynski <[email protected]> | 2021-07-18 11:32:44 +0300 |
---|---|---|
committer | Valery Piashchynski <[email protected]> | 2021-07-18 11:32:44 +0300 |
commit | 9c51360f9119a4114bdcc21c8e61f0908a3c876d (patch) | |
tree | ea63a051931bbd8282d64478bbefa2f970fcc955 /pkg/worker_watcher/container/vec.go | |
parent | f4feb30197843d05eb308081ee579d3a9e3d6206 (diff) |
Started beanstalk driver. Add new Queue impl (not finished yet).
Fix bugs in the AMQP, update proto-api
Signed-off-by: Valery Piashchynski <[email protected]>
Diffstat (limited to 'pkg/worker_watcher/container/vec.go')
-rw-r--r-- | pkg/worker_watcher/container/vec.go | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/pkg/worker_watcher/container/vec.go b/pkg/worker_watcher/container/vec.go deleted file mode 100644 index 24b5fa6d..00000000 --- a/pkg/worker_watcher/container/vec.go +++ /dev/null @@ -1,51 +0,0 @@ -package container - -import ( - "context" - "sync/atomic" - - "github.com/spiral/errors" - "github.com/spiral/roadrunner/v2/pkg/worker" -) - -type Vec struct { - destroy uint64 - workers chan worker.BaseProcess -} - -func NewVector(initialNumOfWorkers uint64) *Vec { - vec := &Vec{ - destroy: 0, - workers: make(chan worker.BaseProcess, initialNumOfWorkers), - } - - return vec -} - -func (v *Vec) Enqueue(w worker.BaseProcess) { - v.workers <- w -} - -func (v *Vec) Dequeue(ctx context.Context) (worker.BaseProcess, error) { - /* - if *addr == old { - *addr = new - return true - } - */ - - if atomic.CompareAndSwapUint64(&v.destroy, 1, 1) { - return nil, errors.E(errors.WatcherStopped) - } - - select { - case w := <-v.workers: - return w, nil - case <-ctx.Done(): - return nil, errors.E(ctx.Err(), errors.NoFreeWorkers) - } -} - -func (v *Vec) Destroy() { - atomic.StoreUint64(&v.destroy, 1) -} |