avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dona...@apache.org
Subject cvs commit: jakarta-avalon-excalibur/thread/src/java/org/apache/excalibur/thread Executable.java ThreadPool.java ThreadControl.java
Date Sat, 28 Sep 2002 01:57:56 GMT
donaldp     2002/09/27 18:57:56

  Added:       thread/src/java/org/apache/excalibur/thread Executable.java
                        ThreadPool.java ThreadControl.java
  Log:
  Move across the old threadpool stuff to new package hierarcchy
  
  Revision  Changes    Path
  1.1                  jakarta-avalon-excalibur/thread/src/java/org/apache/excalibur/thread/Executable.java
  
  Index: Executable.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.thread;
  
  /**
   * The Executable can be implemented by components that need to perform
   * some work. In many respects it is similar to Runnable except that it
   * also allows an application to throw a non-Runtime Exception.
   *
   * <p>The work done may be short lived (ie a simple task) or it could
   * be a long running.</p>
   *
   * @author <a href="mailto:peter at apache.org">Peter Donald</a>
   */
  public interface Executable
  {
      /**
       * Execute the action associated with this component.
       *
       * @throws Exception if an error occurs
       */
      void execute()
          throws Exception;
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/thread/src/java/org/apache/excalibur/thread/ThreadPool.java
  
  Index: ThreadPool.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.thread;
  
  /**
   * This class is the public frontend for the thread pool code.
   *
   * @author <a href="mailto:peter at apache.org">Peter Donald</a>
   */
  public interface ThreadPool
  {
      /**
       * Run work in separate thread.
       * Return a valid ThreadControl to control work thread.
       *
       * @param work the work to be executed.
       * @return the ThreadControl
       */
      ThreadControl execute( Runnable work );
  
      /**
       * Run work in separate thread.
       * Return a valid ThreadControl to control work thread.
       *
       * @param work the work to be executed.
       * @return the ThreadControl
       */
      ThreadControl execute( Executable work );
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/thread/src/java/org/apache/excalibur/thread/ThreadControl.java
  
  Index: ThreadControl.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.thread;
  
  /**
   * This interface defines the method through which Threads can be controller.
   *
   * @author <a href="mailto:peter at apache.org">Peter Donald</a>
   */
  public interface ThreadControl
      extends org.apache.avalon.excalibur.thread.ThreadControl
  {
      /**
       * Wait for specified time for thread to complete it's work.
       *
       * @param milliSeconds the duration in milliseconds to wait until the thread has finished
work
       * @throws IllegalStateException if isValid() == false
       * @throws InterruptedException if another thread has interrupted the current thread.
       *            The interrupted status of the current thread is cleared when this exception
       *            is thrown.
       */
      void join( long milliSeconds )
          throws IllegalStateException, InterruptedException;
  
      /**
       * Call Thread.interupt() on thread being controlled.
       *
       * @throws IllegalStateException if isValid() == false
       * @throws SecurityException if caller does not have permission to call interupt()
       */
      void interupt()
          throws IllegalStateException, SecurityException;
  
      /**
       * Determine if thread has finished execution
       *
       * @return true if thread is finished, false otherwise
       */
      boolean isFinished();
  
      /**
       * Retrieve throwable that caused thread to cease execution.
       * Only valid when true == isFinished()
       *
       * @return the throwable that caused thread to finish execution
       */
      Throwable getThrowable();
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@jakarta.apache.org>


Mime
View raw message