Module

Task

Changes by version

Elixir 1.16.0

· 1 change

Enhancement Tool: Elixir

Add :limit option to Task.yield_many/2

Elixir 1.15.0

· 4 changes

Enhancement Tool: Elixir

Remove head of line blocking on Task.yield_many/2

Enhancement Tool: Elixir

Enable selective receive optimizations in Erlang/OTP 26+

Enhancement Tool: Elixir

Reduce tasks footprint by avoiding unecessary work during spawning

Bugfix Tool: Elixir

Do not double log Task failure reports

Elixir 1.14.0

· 2 changes

Enhancement Tool: Elixir

Add :zip_input_on_exit option to Task.async_stream/3

Enhancement Tool: Elixir

Store :mfa in the Task struct for reflection purposes

Elixir 1.13.1

· 1 change

Bugfix Tool: Elixir

Ensure async streams can be consumed from another process than the one that creates them

Elixir 1.13.0

· 3 changes

Enhancement Tool: Elixir

Add Task.completed/1

Enhancement Tool: Elixir

Add Task.ignore/1 to keep a task running but ignoring all of its results

Enhancement Tool: Elixir

Reduce the amount of copying Task.async* functions

Elixir 1.12.0

· 2 changes

Bugfix Tool: Elixir

Ensure Task.async_stream/2 with ordered: false discard results as they are emitted, instead of needlessly accumulating inside the stream manager

Bugfix Tool: Elixir

Raise if :max_concurrency is set to 0 on streaming operations

Elixir 1.11.0

· 1 change

Enhancement Tool: Elixir

Add Task.await_many/2

Elixir 1.10.4

· 2 changes

Bugfix Tool: Elixir

Include callers in translated Logger metadata for Task

Bugfix Tool: Elixir

Fix Task PID and caller in Task Supervisor reports

Elixir 1.10.2

· 1 change

Bugfix Tool: Elixir

Do not crash async_stream monitor if it receives spurious DOWN messages

Elixir 1.8.0

· 1 change

Enhancement Tool: Elixir

Add $callers tracking to Task - this makes it easier to find which process spawned a task and use it for tracking ownership and monitoring

Elixir 1.7.0

· 1 change

Bugfix Tool: Elixir

Improve error reports and exit reasons for failed tasks on Erlang/OTP 20+

Elixir 1.6.5

· 1 change

Bugfix Tool: Elixir

Support :infinity timeout on Task.yield_many/2

Elixir 1.5.1

· 1 change

Bugfix Tool: Elixir

Support :infinity timeout on Task streams

Elixir 1.5.0

· 2 changes

Enhancement Tool: Elixir

Support :on_timeout in Task.async_stream to control how tasks are terminated

Enhancement Tool: Elixir

Add ordered: false support to Task.async_stream

Elixir 1.4.0

· 3 changes

Enhancement Tool: Elixir

Add Task.async_stream/3 and Task.async_stream/5 as well as the supervised versions Task.Supervisor.async_stream/4 and Task.Supervisor.async_stream/6

Bugfix Tool: Elixir

Fix Task.shutdown/1,2 infinite block when task has no monitor

Bugfix Tool: Elixir

Ensure task cannot link after parents unlinks

Elixir 1.3.0

· 1 change

Enhancement Tool: Elixir

Task.find/2 is deprecated in favor of explicit message matching

Elixir 1.2.0

· 3 changes

Enhancement Tool: Elixir

Add Task.Supervisor.async_nolink/1/3 that spawns a supervised task without linking to the caller process

Enhancement Tool: Elixir

Introduce Task.yield_many/2

Enhancement Tool: Elixir

Raise an error when a task is queried from a non-owning process (instead of waiting forever)

Elixir 1.1.0

· 1 change

Enhancement Tool: Elixir

Introduce Task.yield/2 and Task.shutdown/2 to check if a task is still executing and shutdown otherwise

Elixir 0.14.2

· 1 change

Enhancement Tool: Elixir

Set :proc_lib initial call on task to aid debugging

Elixir 0.14.1

· 1 change

Enhancement Tool: Elixir

Log when tasks crash

Elixir 0.14.0

· 1 change

Enhancement Tool: Elixir

Tasks are automatically linked to callers and a failure in the task will crash the caller directly