org.codehaus.gpars

groovyx.gpars.dataflow.operator
[Java] Class ForkingDataflowOperatorActor

java.lang.Object
  groovyx.gpars.serial.WithSerialId
      groovyx.gpars.actor.impl.MessageStream
          groovyx.gpars.actor.Actor
              groovyx.gpars.actor.AbstractLoopingActor
                  groovyx.gpars.actor.StaticDispatchActor
                      groovyx.gpars.dataflow.operator.DataflowProcessorActor
                          groovyx.gpars.dataflow.operator.DataflowOperatorActor
                              groovyx.gpars.dataflow.operator.ForkingDataflowOperatorActor

@SuppressWarnings({"RawUseOfParameterizedType"})
final class ForkingDataflowOperatorActor
extends DataflowOperatorActor

An operator's internal actor. Repeatedly polls inputs and once they're all available it performs the operator's body. The operator's body is executed in as a separate task, allowing multiple copies of the body to be run concurrently. The maxForks property guards the maximum number or concurrently run copies.

Authors:
Vaclav Pech


Field Summary
private int maxForks

private java.util.concurrent.Semaphore semaphore

private Pool threadPool

 
Fields inherited from class DataflowOperatorActor
values
 
Fields inherited from class DataflowProcessorActor
CANNOT_OBTAIN_THE_SEMAPHORE_TO_FORK_OPERATOR_S_BODY, code, inputs, outputs, owningProcessor, stoppingGently
 
Fields inherited from class StaticDispatchActor
serialVersionUID
 
Fields inherited from class AbstractLoopingActor
core, currentSender, currentTimerTask, serialVersionUID, stoppedFlag, terminatedFlag, terminatingFlag, timeoutCounter
 
Fields inherited from class Actor
ACTOR_HAS_ALREADY_BEEN_STARTED, AFTER_START, CANNOT_SEND_REPLIES_NO_SENDER_HAS_BEEN_REGISTERED, EMPTY_ARGUMENTS, ON_DELIVERY_ERROR, RESPONDS_TO, START_MESSAGE, STOP_MESSAGE, TERMINATE_MESSAGE, TIMEOUT, TIMEOUT_MESSAGE, currentActorPerThread, currentThread, joinLatch, onStop, parallelGroup, serialVersionUID, timer
 
Fields inherited from class MessageStream
serialVersionUID
 
Fields inherited from class WithSerialId
serialHandle, serialVersionUID
 
Constructor Summary
ForkingDataflowOperatorActor(DataflowOperator owningOperator, PGroup group, java.util.List outputs, java.util.List inputs, groovy.lang.Closure code, int maxForks)

 
Method Summary
protected void forwardPoisonPill(java.lang.Object data)

void startTask(java.util.List results)

 
Methods inherited from class DataflowOperatorActor
afterStart, onMessage, queryInputs, startTask
 
Methods inherited from class DataflowProcessorActor
afterStart, afterStop, checkPoison, fireMessageArrived, forwardPoisonPill, isControlMessage, onException, onMessage, registerChannelListenersToAllInputs, reportException, send
 
Methods inherited from class StaticDispatchActor
onMessage
 
Methods inherited from class AbstractLoopingActor
cancelCurrentTimeoutTask, doStart, getCore, getSender, hasBeenStopped, initialize, isActive, isFair, makeFair, reply, replyIfExists, runEnhancedWithoutRepliesOnMessages, send, setParallelGroup, setTimeout, silentStart, start, stop, sweepNextMessage, terminate
 
Methods inherited from class Actor
callDynamic, createActorMessage, createRemoteHandle, deregisterCurrentActorWithThread, getJoinLatch, getParallelGroup, handleException, handleInterrupt, handleStart, handleTermination, handleTimeout, hasBeenStopped, isActive, isActorThread, join, join, join, join, onStop, registerCurrentActorWithThread, sendAndContinue, sendAndPromise, setParallelGroup, silentStart, start, stop, sweepNextMessage, sweepQueue, terminate, threadBoundActor
 
Methods inherited from class MessageStream
call, getRemoteClass, leftShift, reInterrupt, send, send, send, sendAndWait, sendAndWait, sendAndWait
 
Methods inherited from class WithSerialId
createRemoteHandle, getOrCreateSerialHandle, getRemoteClass, writeReplace
 

Field Detail

maxForks

private final int maxForks


semaphore

private final java.util.concurrent.Semaphore semaphore


threadPool

private final Pool threadPool


 
Constructor Detail

ForkingDataflowOperatorActor

ForkingDataflowOperatorActor(DataflowOperator owningOperator, PGroup group, java.util.List outputs, java.util.List inputs, groovy.lang.Closure code, int maxForks)


 
Method Detail

forwardPoisonPill

@Override
protected void forwardPoisonPill(java.lang.Object data)


startTask

@Override
void startTask(java.util.List results)


 

Copyright © 2008–2012 Václav Pech. All Rights Reserved.