Package edu.emory.mathcs.backport.java.util.concurrent

Examples of edu.emory.mathcs.backport.java.util.concurrent.FutureTask


            if( fullCheckpoint ) {               
                Iterator iterator = queues.values().iterator();
                while (iterator.hasNext()) {
                    try {
                        final JournalMessageStore ms = (JournalMessageStore) iterator.next();
                        FutureTask task = new FutureTask(new Callable() {
                            public Object call() throws Exception {
                                return ms.checkpoint();
                            }});
                        futureTasks.add(task);
                        checkpointExecutor.execute(task);                       
                    }
                    catch (Exception e) {
                        log.error("Failed to checkpoint a message store: " + e, e);
                    }
                }
            }

            Iterator iterator = topics.values().iterator();
            while (iterator.hasNext()) {
                try {
                    final JournalTopicMessageStore ms = (JournalTopicMessageStore) iterator.next();
                    FutureTask task = new FutureTask(new Callable() {
                        public Object call() throws Exception {
                            return ms.checkpoint();
                        }});
                    futureTasks.add(task);
                    checkpointExecutor.execute(task);                       
                }
                catch (Exception e) {
                    log.error("Failed to checkpoint a message store: " + e, e);
                }
            }

            try {
                for (Iterator iter = futureTasks.iterator(); iter.hasNext();) {
                    FutureTask ft = (FutureTask) iter.next();
                    RecordLocation mark = (RecordLocation) ft.get();
                    // We only set a newMark on full checkpoints.
                    if( fullCheckpoint ) {
                        if (mark != null && (newMark == null || newMark.compareTo(mark) < 0)) {
                            newMark = mark;
                        }
View Full Code Here


            if( fullCheckpoint ) {               
                Iterator iterator = queues.values().iterator();
                while (iterator.hasNext()) {
                    try {
                        final RapidMessageStore ms = (RapidMessageStore) iterator.next();
                        FutureTask task = new FutureTask(new Callable() {
                            public Object call() throws Exception {
                                return ms.checkpoint();
                            }});
                        futureTasks.add(task);
                        checkpointExecutor.execute(task);                       
                    }
                    catch (Exception e) {
                        log.error("Failed to checkpoint a message store: " + e, e);
                    }
                }
            }

            Iterator iterator = topics.values().iterator();
            while (iterator.hasNext()) {
                try {
                    final RapidTopicMessageStore ms = (RapidTopicMessageStore) iterator.next();
                    FutureTask task = new FutureTask(new Callable() {
                        public Object call() throws Exception {
                            return ms.checkpoint();
                        }});
                    futureTasks.add(task);
                    checkpointExecutor.execute(task);                       
                }
                catch (Exception e) {
                    log.error("Failed to checkpoint a message store: " + e, e);
                }
            }

            try {
                for (Iterator iter = futureTasks.iterator(); iter.hasNext();) {
                    FutureTask ft = (FutureTask) iter.next();
                    RecordLocation mark = (RecordLocation) ft.get();
                    // We only set a newMark on full checkpoints.
                    if( fullCheckpoint ) {
                        if (mark != null && (newMark == null || newMark.compareTo(mark) < 0)) {
                            newMark = mark;
                        }
View Full Code Here

            if( fullCheckpoint ) {               
                Iterator iterator = queues.values().iterator();
                while (iterator.hasNext()) {
                    try {
                        final QuickJournalMessageStore ms = (QuickJournalMessageStore) iterator.next();
                        FutureTask task = new FutureTask(new Callable() {
                            public Object call() throws Exception {
                                return ms.checkpoint();
                            }});
                        futureTasks.add(task);
                        checkpointExecutor.execute(task);                       
                    }
                    catch (Exception e) {
                        log.error("Failed to checkpoint a message store: " + e, e);
                    }
                }
            }

            Iterator iterator = topics.values().iterator();
            while (iterator.hasNext()) {
                try {
                    final QuickJournalTopicMessageStore ms = (QuickJournalTopicMessageStore) iterator.next();
                    FutureTask task = new FutureTask(new Callable() {
                        public Object call() throws Exception {
                            return ms.checkpoint();
                        }});
                    futureTasks.add(task);
                    checkpointExecutor.execute(task);                       
                }
                catch (Exception e) {
                    log.error("Failed to checkpoint a message store: " + e, e);
                }
            }

            try {
                for (Iterator iter = futureTasks.iterator(); iter.hasNext();) {
                    FutureTask ft = (FutureTask) iter.next();
                    RecordLocation mark = (RecordLocation) ft.get();
                    // We only set a newMark on full checkpoints.
                    if( fullCheckpoint ) {
                        if (mark != null && (newMark == null || newMark.compareTo(mark) < 0)) {
                            newMark = mark;
                        }
View Full Code Here

    public String destroyMultiple(int[] workspaces, String sourceStr, boolean block) {

        final FutureTask[] tasks = new FutureTask[workspaces.length];
        for (int i = 0; i < workspaces.length; i++) {
            tasks[i] = new FutureTask(
                            new DestroyFutureTask(workspaces[i], this, block));
        }

        for (int i = 0; i < tasks.length; i++) {
            this.executor.submit(tasks[i]);
View Full Code Here

        // todo: make timeout configurable when this class comes via IoC

        final Iterator iter2 = killList.iterator();
        while (iter2.hasNext()) {
            final FutureTask task = (FutureTask) iter2.next();
            try {
                final String msg = (String) task.get(30L, TimeUnit.SECONDS);
                if (msg != null) {
                    logger.debug(msg);
                }
            } catch (Exception e) {
                final String err = "Error while destroying sweeped " +
View Full Code Here

                if (expired || sw.isZombie()) {
                    final DestroyFutureTask task =
                            new DestroyFutureTask(sw.getID(), this.home);

                    killList.add(new FutureTask(task));
                }
            }
        }

        return killList;
View Full Code Here

            // Unfortunately there can be buffer overflow problems if there are
            // not threads consuming stdout/stderr, seen that with workspace-
            // control create commands on certain platforms.

            processStderrStream = process.getErrorStream();
            final FutureTask stderrConsumer = new FutureTask(
                            new StreamConsumer(processStderrStream));

            processStdoutStream = process.getInputStream();
            final FutureTask stdoutConsumer = new FutureTask(
                            new StreamConsumer(processStdoutStream));

            executor.submit(stdoutConsumer);
            executor.submit(stderrConsumer);

            if (stdin != null) {
                if (traceLog) {
                    logger.trace("stdin provided");
                }
                BufferedWriter in = null;
                OutputStreamWriter osw = null;
                OutputStream os = null;
                try {
                    os = process.getOutputStream();
                    osw = new OutputStreamWriter(os);
                    in = new BufferedWriter(osw);
                    in.write(stdin);
                    in.newLine();
                    in.flush();
                } finally {
                    if (in != null) {
                        in.close();
                    }
                    if (osw != null) {
                        osw.close();
                    }
                    if (os != null) {
                        os.close();
                    }
                }
                if (traceLog) {
                    logger.trace("stdin sent");
                }
            } else {
                OutputStream os = null;
                try {
                    os = process.getOutputStream();
                } finally {
                    if (os != null) {
                        os.close();
                    }
                }
            }

            final int returnCode;
            try {
                returnCode = process.waitFor();
            } catch (InterruptedException exp) {
                logger.error("Interupped exp thrown ", exp);
                throw new WorkspaceException("Interrupted: ", exp);
            }

            if (eventLog && event) {
                logger.info(Lager.ev(trackingID) + "Return code is " + returnCode);
            } else if (traceLog && event) {
                logger.trace("Return code is " + returnCode);
            }

            try {
                stdout = (String) stdoutConsumer.get(60L, TimeUnit.SECONDS);
            } catch (Exception e) {
                logger.error(e.getMessage());
            }

            try {
View Full Code Here

                        new RPQueryCurrentState(portTypes[i], this.pr);

                action.setStateConduit(stateConduit, workspaces[i].getEpr());
                action.setTerminationConduit(termConduit,
                                             workspaces[i].getEpr());
                queryTasks[i] = new FutureTask(action);
            }

            for (int i = 0; i < queryTasks.length; i++) {
                useExecutor.submit(queryTasks[i]);
            }
View Full Code Here

        final List tasks = new ArrayList(taskNum);

        if (stateSubscribes != null) {
            for (int i = 0; i < stateSubscribes.length; i++) {
                tasks.add(new FutureTask(stateSubscribes[i]));
            }
        }

        if (termSubscribes != null) {
            for (int i = 0; i < termSubscribes.length; i++) {
                tasks.add(new FutureTask(termSubscribes[i]));
            }
        }

        return (FutureTask[]) tasks.toArray(new FutureTask[tasks.size()]);
    }
View Full Code Here

    // -------------------------------------------------------------------------

    private void launchStateWaiter() {
        final LatchWaiter waiter = new LatchWaiter(this.getTargetLatch(),
                                                   this.exitLatch);
        this.targetWaiter = new FutureTask(waiter);
        this.executor.submit(this.targetWaiter);
    }
View Full Code Here

TOP

Related Classes of edu.emory.mathcs.backport.java.util.concurrent.FutureTask

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.