Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
A light-weight process that runs concurrently. You can use spawn
to get
a bunch of different tasks running in different processes. The Elm Haskell
will interleave their progress. So if a task is taking too long, we will
pause it at an andThen
and switch over to other stuff.
Note: We make a distinction between concurrency which means interleaving different sequences and parallelism which means running different sequences at the exact same time. For example, a time-sharing system is definitely concurrent, but not necessarily parallel.
spawn :: Task x a -> Task y Id Source #
Run a task in its own light-weight process. In the following example,
task1
and task2
will be interleaved. If task1
makes a long HTTP
request or is just taking a long time, we can hop over to task2
and do
some work there.
spawn task1 |> Task.andThen (\_ -> spawn task2)
Note: This creates a relatively restricted kind of Process because it cannot receive any messages. More flexibility for user-defined processes will come in a later release!