| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Process
Description
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!