final class OneElementConcurrentQueue[A] extends MutableConcurrentQueue[A] with Serializable
This is a specialized implementation of MutableConcurrentQueue of capacity 1. Since capacity 1 queues are by default used under the hood in Streams as intermediate resource they should be very cheap to create and throw away. Hence this queue is optimized (unlike RingBuffer*) for a very small footprint, while still being plenty fast.
Allocating an object takes only 24 bytes + 8+ bytes in long adder (so 32+ bytes total), which is 15x less than the smallest RingBuffer.
zio.internal.impls.OneElementConcurrentQueue object internals: OFFSET SIZE TYPE DESCRIPTION 0 4 (object header) 4 4 (object header) 8 4 (object header) 12 4 int OneElementConcurrentQueue.capacity 16 4 java.util.concurrent.atomic.AtomicReference OneElementConcurrentQueue.ref 20 4 java.util.concurrent.atomic.LongAdder OneElementConcurrentQueue.deqAdder Instance size: 24 bytes Space losses: 0 bytes internal + 0 bytes external = 0 bytes total
- Alphabetic
- By Inheritance
- OneElementConcurrentQueue
- Serializable
- MutableConcurrentQueue
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-  new OneElementConcurrentQueue()
Value Members
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ##(): Int
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      - Definition Classes
- Any
 
- 
      
      
      
        
      
    
      
        final 
        val
      
      
        capacity: Int(1)
      
      
      The maximum number of elements that a queue can hold. The maximum number of elements that a queue can hold. - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
- Note
- that unbounded queues can still implement this interface with - capacity = MAX_INT.
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        clone(): AnyRef
      
      
      - Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        dequeuedCount(): Long
      
      
      - returns
- the number of elements that have ever been taken from the queue. 
 - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
- Note
- if you know how much time the queue is alive, you can calculate the rate at which elements are being dequeued. 
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        enqueuedCount(): Long
      
      
      - returns
- the number of elements that have ever been added to the queue. 
 - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
- Note
- that scala.Long is used here, since scala.Int will be overflowed really quickly for busy queues. ,- if you know how much time the queue is alive, you can calculate the rate at which elements are being enqueued. 
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        finalize(): Unit
      
      
      - Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      - Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      - Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        isEmpty(): Boolean
      
      
      - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        isFull(): Boolean
      
      
      - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      - Definition Classes
- Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        ne(arg0: AnyRef): Boolean
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        notify(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @native()
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @native()
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        offer(a: A): Boolean
      
      
      A non-blocking enqueue. A non-blocking enqueue. - returns
- whether the enqueue was successful or not. 
 - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        poll(default: A): A
      
      
      A non-blocking dequeue. A non-blocking dequeue. - returns
- either an element from the queue, or the - defaultparam.
 - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
- Note
- that if there's no meaningful default for your type, you can always use - poll(null). Not the best, but reasonable price to pay for lower heap churn from not using scala.Option here.
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        size(): Int
      
      
      - returns
- the current number of elements inside the queue. 
 - Definition Classes
- OneElementConcurrentQueue → MutableConcurrentQueue
- Note
- that this method can be non-atomic and return the approximate number in a concurrent setting. 
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      - Definition Classes
- AnyRef
 
- 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      - Definition Classes
- AnyRef → Any
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... )
 
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      - Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()