Îõ³h*tƒ(      !"#$%&'0.2.9 Safe-Inferred 3679<ÊØÝ-(distributed-process-async$A message to cancel Async operationsdistributed-process-asyncêRepresents the result of an asynchronous action, which can be in one of several states at any given time.distributed-process-async!a completed action and its resultdistributed-process-async&a failed action and the failure reasondistributed-process-asynca link failure and the reasondistributed-process-asynca cancelled actiondistributed-process-async(a pending action (that is still running)distributed-process-async&A task to be performed asynchronously. distributed-process-asyncthe task to be performed distributed-process-async8the serializable dict required to spawn a remote process distributed-process-async0the node on which to spawn the asynchronous task distributed-process-async:the task to be performed, wrapped in a closure environment distributed-process-async0An handle for an asynchronous action spawned by async¯. Asynchronous operations are run in a separate process, and operations are provided for waiting for asynchronous actions to complete and obtaining their results (see e.g. wait).ÃHandles of this type cannot cross remote boundaries, nor are they  Serializable.distributed-process-async%A reference to an asynchronous action )*+, (-(c) Tim Watson 2012BSD3 (see the file LICENSE)%Tim Watson  experimental#non-portable (requires concurrency) Safe-Inferred3/distributed-process-asyncWraps a regular  Process a as an .distributed-process-async2Wraps the components required and builds a remote .distributed-process-async Given an  $ handle, monitor the worker process.distributed-process-async¬Spawns an asynchronous action and returns a handle to it, which can be used to obtain its status and/or result or interact with it (using the API exposed by this module).distributed-process-asyncÆProvides the pid of the worker process performing the async operation.distributed-process-asyncThis is a useful variant of  that ensures an Async÷ task is never left running unintentionally. We ensure that if the caller's process exits, that the worker is killed.ñThere is currently a contract for async workers, that they should exit normally (i.e., they should not call the exit or kill with their own . nor use the  terminate0 primitive to cease functining), otherwise the  will end up being AsyncFailed DiedException+ instead of containing the desired result.distributed-process-asyncCheck whether an   has completed yet.distributed-process-asyncLike  but returns / if (poll hAsync) == AsyncPending.distributed-process-async:Wait for an asynchronous operation to complete or timeout.distributed-process-async’Wait for an asynchronous action to complete, and return its value. The result (which can include failure and/or cancellation) is encoded by the  type. $wait = liftIO . atomically . waitSTMdistributed-process-async:Wait for an asynchronous operation to complete or timeout.distributed-process-asyncÒWait for an asynchronous operation to complete or timeout. If it times out, then " the async handle.distributed-process-asyncWait for any of the supplied Asyncs to complete. If multiple  Ès complete, then the value returned corresponds to the first completed   in the list. NB: Unlike  AsyncChan,   does not discard its å once read, therefore the semantics of this function are different to the former. Specifically, if asyncs = [a1, a2, a3] and (AsyncDone _) = a1 then the remaining a2, a3 will never be returned by .distributed-process-asyncLike Ó, but also cancels the other asynchronous operations as soon as one has completed.distributed-process-asyncWait for the first of two Async s to finish.distributed-process-asyncLike , but the result is ignored.distributed-process-asyncWaits for both Async s to finish. distributed-process-asyncLike ) but times out after the specified delay.!distributed-process-async!Cancel an asynchronous operation."distributed-process-asyncËCancel an asynchronous operation and wait for the cancellation to complete.#distributed-process-async-Cancel an asynchronous operation immediately.$distributed-process-asyncLike # but sends a kill instruction instead of an exit.%distributed-process-asyncSTM version of .&distributed-process-async A version of , that can be used inside an STM transaction.'distributed-process-async A version of , that can be used inside an STM transaction.( !"#$ '&%( !"#$ '&%0       !"#$%&'()*+,-.+/0123456distributed-process-async-0.2.9-DJTMDUqOIJH6U6z4vWPmlV!Control.Distributed.Process.Asyncdistributed-process-async0Control.Distributed.Process.Async.Internal.Types AsyncResult AsyncDone AsyncFailedAsyncLinkFailedAsyncCancelled AsyncPending AsyncTaskAsyncRemoteTask asyncTask asyncTaskDict asyncTaskNode asyncTaskProcAsyncAsyncReftask remoteTask monitorAsyncasync asyncWorker asyncLinkedpollcheckwaitCheckTimeoutwait waitTimeoutwaitCancelTimeoutwaitAny waitAnyCancel waitEither waitEither_waitBothwaitAnyTimeoutcancel cancelWait cancelWith cancelKill waitAnySTMwaitSTMpollSTM CancelWait _asyncWorker _asyncMonitor _asyncWait0distributed-process-0.7.7-3onDl8SKCkfI51E1HTsz2E*Control.Distributed.Process.Internal.Types ProcessIdbase GHC.MaybeNothing