Class/Object

scalaz.concurrent

Task

Related Docs: object Task | package concurrent

Permalink

class Task[A] extends AnyRef

Task[A] wraps a scalaz.concurrent.Future[Throwable \/ A], with some convenience functions for handling exceptions. Its Monad and Nondeterminism instances are derived from Future.

Task (and Future) differ in several key ways from the Future implementation in Scala 2.10 , and have a number of advantages. See the documentation for scalaz.concurrent.Future for more information.

Task is exception-safe when constructed using the primitives in the companion object, but when calling the constructor, you are responsible for ensuring the exception safety of the provided Future.

Source
Task.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Task
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Task(get: Future[\/[Throwable, A]])

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def after(t: Duration): Task[A]

    Permalink

    Delays the execution of this Task by the duration t.

  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def attempt: Task[\/[Throwable, A]]

    Permalink

    'Catches' exceptions in the given task and returns them as values.

  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def ensure(failure: ⇒ Throwable)(f: (A) ⇒ Boolean): Task[A]

    Permalink

    Ensures that the result of this Task satisfies the given predicate, or fails with the given value.

  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. def flatMap[B](f: (A) ⇒ Task[B]): Task[B]

    Permalink
  13. val get: Future[\/[Throwable, A]]

    Permalink
  14. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  15. def handle[B >: A](f: PartialFunction[Throwable, B]): Task[B]

    Permalink

    Calls attempt and handles some exceptions using the given partial function, calling Task.now on the result.

    Calls attempt and handles some exceptions using the given partial function, calling Task.now on the result. Any nonmatching exceptions are reraised.

  16. def handleWith[B >: A](f: PartialFunction[Throwable, Task[B]]): Task[B]

    Permalink

    Calls attempt and handles some exceptions using the given partial function.

    Calls attempt and handles some exceptions using the given partial function. Any nonmatching exceptions are reraised.

  17. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  18. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  19. def map[B](f: (A) ⇒ B): Task[B]

    Permalink
  20. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  23. def onFinish(f: (Option[Throwable]) ⇒ Task[Unit]): Task[A]

    Permalink

    Returns a new Task in which f is scheduled to be run on completion.

    Returns a new Task in which f is scheduled to be run on completion. This would typically be used to release any resources acquired by this Task.

  24. def or(t2: Task[A]): Task[A]

    Permalink

    Runs this Task, and if it fails with an exception, runs t2.

    Runs this Task, and if it fails with an exception, runs t2. This is rather coarse-grained. Use attempt, handle, and flatMap for more fine grained control of exception handling.

  25. def retry(delays: IList[Duration], p: (Throwable) ⇒ Boolean = _.isInstanceOf[Exception]): Task[A]

    Permalink

    Retries this task if it fails, once for each element in delays, each retry delayed by the corresponding duration.

    Retries this task if it fails, once for each element in delays, each retry delayed by the corresponding duration. A retriable failure is one for which the predicate p returns true.

  26. def retryAccumulating(delays: IList[Duration], p: (Throwable) ⇒ Boolean = _.isInstanceOf[Exception]): Task[(A, IList[Throwable])]

    Permalink

    Retries this task if it fails, once for each element in delays, each retry delayed by the corresponding duration, accumulating errors into a list.

    Retries this task if it fails, once for each element in delays, each retry delayed by the corresponding duration, accumulating errors into a list. A retriable failure is one for which the predicate p returns true.

  27. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  28. def timed(timeout: Duration)(implicit scheduler: ScheduledExecutorService = Strategy.DefaultTimeoutScheduler): Task[A]

    Permalink
  29. def timed(timeoutInMillis: Long)(implicit scheduler: ScheduledExecutorService): Task[A]

    Permalink

    A Task which returns a TimeoutException after timeoutInMillis, and attempts to cancel the running computation.

  30. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  31. def unsafePerformAsync(f: (\/[Throwable, A]) ⇒ Unit): Unit

    Permalink

    Run this computation to obtain either a result or an exception, then invoke the given callback.

    Run this computation to obtain either a result or an exception, then invoke the given callback. Any pure, non-asynchronous computation at the head of this Task will be forced in the calling thread. At the first Async encountered, control to whatever thread backs the Async and this function returns immediately.

  32. def unsafePerformAsyncInterruptibly(f: (\/[Throwable, A]) ⇒ Unit): () ⇒ Unit

    Permalink

    Similar to unsafePerformAsyncInterruptibly(f,cancel) except instead of interrupting by setting cancel to true, It returns the function, that, when applied will interrupt the task.

    Similar to unsafePerformAsyncInterruptibly(f,cancel) except instead of interrupting by setting cancel to true, It returns the function, that, when applied will interrupt the task.

    This allows "deterministic" completion of task computation even if it was interrupted. That means task will complete even when interrupted, but with TaskInterrupted exception.

    Note 1: When Interrupted, the f callback will run in thread that called the Interrupting function () => Unit Note 2: If task has handler like attempt, it won't get consulted for handling TaskInterrupted exception

  33. def unsafePerformAsyncInterruptibly(f: (\/[Throwable, A]) ⇒ Unit, cancel: AtomicBoolean): Unit

    Permalink

    Run this computation to obtain an A, so long as cancel remains false.

    Run this computation to obtain an A, so long as cancel remains false. Because of trampolining, we get frequent opportunities to cancel while stepping through the trampoline, this should provide a fairly robust means of cancellation.

  34. def unsafePerformSync: A

    Permalink

    Run this Task and block until its result is available.

    Run this Task and block until its result is available. This will throw any exceptions generated by the Task. To return exceptions in an \/, use unsafePerformSyncAttempt.

  35. def unsafePerformSyncAttempt: \/[Throwable, A]

    Permalink

    Like unsafePerformSync, but returns exceptions as values.

  36. def unsafePerformSyncAttemptFor(timeout: Duration): \/[Throwable, A]

    Permalink
  37. def unsafePerformSyncAttemptFor(timeoutInMillis: Long): \/[Throwable, A]

    Permalink

    Like unsafePerformSyncFor, but returns exceptions as values.

    Like unsafePerformSyncFor, but returns exceptions as values. Both TimeoutException and other exceptions will be folded into the same Throwable.

  38. def unsafePerformSyncFor(timeout: Duration): A

    Permalink
  39. def unsafePerformSyncFor(timeoutInMillis: Long): A

    Permalink

    Run this Task and block until its result is available, or until timeoutInMillis milliseconds have elapsed, at which point a TimeoutException will be thrown and the Task will attempt to be canceled.

  40. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  41. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped