diff --git a/queue/ring.go b/queue/ring.go index dfd0b53..d8ac024 100644 --- a/queue/ring.go +++ b/queue/ring.go @@ -95,7 +95,7 @@ L: n = rb.nodes[pos&rb.mask] seq := atomic.LoadUint64(&n.position) - switch dif := seq - pos; { + switch dif := int64(seq) - int64(pos); { case dif == 0: if atomic.CompareAndSwapUint64(&rb.queue, pos, pos+1) { break L @@ -148,7 +148,7 @@ L: n = rb.nodes[pos&rb.mask] seq := atomic.LoadUint64(&n.position) - switch dif := seq - (pos + 1); { + switch dif := int64(seq) - int64(pos + 1); { case dif == 0: if atomic.CompareAndSwapUint64(&rb.dequeue, pos, pos+1) { break L