/**
  * Utility routine to start a task
  *
  * @param thread Task to start
  */
 private void startOne(SearchThread thread) {
   synchronized (mRunningTasks) {
     mRunningTasks.add(thread);
     mTaskManager.addTask(thread);
     // System.out.println(thread.getClass().getSimpleName() + "(" +  + thread.getId() + ")
     // STARTING");
   }
   thread.start();
 }
Example #2
0
  /**
   * Constructor.
   *
   * @param manager Associated task manager
   * @param taskHandler Object to inform of life0cycle events
   */
  public ManagedTask(TaskManager manager, TaskHandler taskHandler) {
    // Must be non-null
    if (manager == null) throw new IllegalArgumentException();

    // Save the stuff for mater
    mManager = manager;
    mTaskHandler = taskHandler;
    // Add to my manager
    mManager.addTask(this);
    // Create a new Handler.
    mMessageHandler = new TaskMessageHandler();
    // Let the subclass create DB if they need it for now.
    // mDbHelper = new CatalogueDBAdapter(mContext);
  }
  private int launchTasks() {
    int mid = (start + end) / 2;
    SearchNumberTask t1 = new SearchNumberTask(numbers, start, mid, number, manager);
    SearchNumberTask t2 = new SearchNumberTask(numbers, mid, end, number, manager);
    manager.addTask(t1);
    manager.addTask(t2);

    // asynchronous
    t1.fork();
    t2.fork();

    int returnValue;
    returnValue = t1.join(); // wait for completion
    if (returnValue != -1) {
      return returnValue;
    }

    returnValue = t2.join(); // wait for completion
    return returnValue;
  }
Example #4
0
 /**
  * Add the task to the task manager.
  *
  * @return Returns this class, for chaining.
  */
 @Override
 public UserTask addToQueue() throws DuplicateTaskException {
   TaskManager.addTask(this);
   return this;
 }