public class Queue extends RubyObject implements DataType
The optional capacity bound constructor argument serves as a
way to prevent excessive queue expansion. The capacity, if unspecified,
is equal to Integer.MAX_VALUE
. Linked nodes are
dynamically created upon each insertion unless this would bring the
queue above capacity.
RubyObject.Data
RubyBasicObject.Finalizer
Modifier and Type | Field and Description |
---|---|
protected int |
capacity
The capacity bound, or Integer.MAX_VALUE if none
|
protected boolean |
closed |
protected java.util.concurrent.atomic.AtomicInteger |
count
Current number of elements
|
protected org.jruby.ext.thread.Queue.Node |
last
Tail of linked list.
|
protected java.util.concurrent.locks.Condition |
notEmpty
Wait queue for waiting takes
|
protected java.util.concurrent.locks.Condition |
notFull
Wait queue for waiting puts
|
protected java.util.concurrent.locks.ReentrantLock |
putLock
Lock held by put, offer, etc
|
protected java.util.concurrent.locks.ReentrantLock |
takeLock
Lock held by takeInternal, poll, etc
|
IVAR_INSPECTING_OBJECT_ALLOCATOR, OBJECT_ALLOCATOR, REIFYING_OBJECT_ALLOCATOR
ALL_F, BASICOBJECT_ALLOCATOR, COMPARE_BY_IDENTITY_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, IS_OVERLAID_F, metaClass, NEVER, NIL_F, REFINED_MODULE_F, STAMP_OFFSET, TAINTED_F, UNDEF, UNTRUST_F, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, USER8_F, USER9_F, USERA_F, VAR_TABLE_OFFSET, varTable, varTableStamp
NULL_ARRAY
Modifier and Type | Method and Description |
---|---|
void |
checkShutdown() |
IRubyObject |
clear(ThreadContext context)
Atomically removes all of the elements from this queue.
|
protected void |
clearInternal() |
IRubyObject |
close(ThreadContext context) |
IRubyObject |
closed_p(ThreadContext context) |
protected void |
closeInternal() |
protected RaiseException |
createInterruptedError(ThreadContext context,
java.lang.String methodName) |
protected IRubyObject |
dequeue() |
RubyBoolean |
empty_p(ThreadContext context) |
protected void |
enqueue(org.jruby.ext.thread.Queue.Node node) |
protected void |
fullyLock()
Locks to prevent both puts and takes.
|
protected void |
fullyUnlock()
Unlocks to allow both puts and takes.
|
IRubyObject |
initialize(ThreadContext context) |
protected void |
initializedCheck() |
boolean |
isShutdown() |
protected long |
java_length() |
RubyNumeric |
length(ThreadContext context) |
IRubyObject |
marshal_dump(ThreadContext context) |
RubyNumeric |
num_waiting(ThreadContext context) |
IRubyObject |
pollInternal() |
IRubyObject |
pop(ThreadContext context) |
IRubyObject |
pop(ThreadContext context,
IRubyObject arg0) |
IRubyObject |
push(ThreadContext context,
IRubyObject value) |
protected void |
putInternal(ThreadContext context,
IRubyObject e)
Inserts the specified element at the tail of this queue, waiting if
necessary for space to become available.
|
IRubyObject |
raiseClosedError(ThreadContext context) |
static void |
setup(Ruby runtime) |
void |
shutdown() |
protected void |
signalNotEmpty()
Signals a waiting takeInternal.
|
protected void |
signalNotFull()
Signals a waiting put.
|
protected IRubyObject |
takeInternal(ThreadContext context) |
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, createObjectClass, dig, eqlInternal, equalInternal, equals, getNativeClassIndex, hashCode, inspect, op_eqq, puts, specificEval, toRubyString, toString
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkCallMethod, checkFrozen, checkStringType, checkStringType19, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataGetStructChecked, dataWrapStruct, decode, display, dup, ensureInstanceVariablesSettable, eql_p, eql, equal_p, equal_p19, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, freeze, frozen_p, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMetaClass, getMetaClass, getNativeHandle, getNativeTypeIndex, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getSingletonClassCloneAndAttach, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInternalVariable, hasVariables, id, infectBy, initialize_copy, initialize19, inspect, inspectHashCode, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval19, instance_eval19, instance_eval19, instance_eval19, instance_exec, instance_exec19, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, instance_variables19, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isSpecialConst, isSpecialObject, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, method_missing, method_missing19, method, method19, methods, methods, methods19, nil_p, nonFixnumHashCode, OBJ_INIT_COPY, objInitCopy, op_cmp, op_equal_19, op_equal, op_match, op_match19, op_not_equal, op_not_match, op_not, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, rbClone, rbClone, rbInspect, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respond_to_p19, respond_to_p19, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, send19, send19, send19, send19, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setNativeHandle, setTaint, setUntrusted, setVariable, singleton_method_added, singleton_method_added19, singleton_method_removed, singleton_method_removed19, singleton_method_undefined, singleton_method_undefined19, singleton_method, singleton_methods, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, to_s, toJava, trust, type_deprecated, type, untaint, untrust, untrusted_p, validateInstanceVariable, validateInstanceVariable, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableRemove, variableTableStore, variableTableSync, yieldUnder, yieldUnder
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
array
protected volatile boolean closed
protected volatile int capacity
protected final java.util.concurrent.atomic.AtomicInteger count
protected transient org.jruby.ext.thread.Queue.Node last
protected final java.util.concurrent.locks.ReentrantLock takeLock
protected final java.util.concurrent.locks.Condition notEmpty
protected final java.util.concurrent.locks.ReentrantLock putLock
protected final java.util.concurrent.locks.Condition notFull
protected void signalNotEmpty()
protected void signalNotFull()
protected void enqueue(org.jruby.ext.thread.Queue.Node node)
protected IRubyObject dequeue()
protected void fullyLock()
protected void fullyUnlock()
protected void initializedCheck()
public static void setup(Ruby runtime)
public IRubyObject initialize(ThreadContext context)
initialize
in class RubyBasicObject
public IRubyObject clear(ThreadContext context)
protected void clearInternal() throws java.lang.InterruptedException
java.lang.InterruptedException
public RubyBoolean empty_p(ThreadContext context)
public RubyNumeric length(ThreadContext context)
public RubyNumeric num_waiting(ThreadContext context)
public IRubyObject pop(ThreadContext context)
public IRubyObject pop(ThreadContext context, IRubyObject arg0)
public IRubyObject push(ThreadContext context, IRubyObject value)
protected void putInternal(ThreadContext context, IRubyObject e) throws java.lang.InterruptedException
java.lang.InterruptedException
java.lang.NullPointerException
public IRubyObject marshal_dump(ThreadContext context)
public IRubyObject close(ThreadContext context)
protected void closeInternal() throws java.lang.InterruptedException
java.lang.InterruptedException
public IRubyObject closed_p(ThreadContext context)
public void shutdown() throws java.lang.InterruptedException
java.lang.InterruptedException
public boolean isShutdown()
public void checkShutdown()
protected long java_length()
protected IRubyObject takeInternal(ThreadContext context) throws java.lang.InterruptedException
java.lang.InterruptedException
public IRubyObject pollInternal() throws java.lang.InterruptedException
java.lang.InterruptedException
public IRubyObject raiseClosedError(ThreadContext context)
protected RaiseException createInterruptedError(ThreadContext context, java.lang.String methodName)
Copyright © 2001-2021 JRuby. All Rights Reserved.