class ActorReceiver implements IMessageReceiver {

    @Override
    public void receive(final IMessageProcessor processor)
            throws MessageReceiveException, AsynchronousOperationException {
        Throwable syncException = null;

        if (isBusy.compareAndSet(false, true)) {
            try {
                childReceiver.receive(processor);
            } catch (Throwable e) {
                syncException = e;
            } finally {
                isBusy.set(false);
            }
        } else {
            processor.pauseProcess();
            queue.add(processor);
        }

        executeDelayed();

        if (null != syncException) {
            throw new MessageReceiveException("Failed to execute actor receiver.", syncException);
        }
    }

    public  ActorReceiver(final IMessageReceiver childReceiver);

}