From 78ae4dc1414b6d646418d199a8661693f82a73c3 Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Wed, 16 Aug 2023 15:27:18 -0400 Subject: [PATCH] Add note the `Task` about sticky bit (#50915) Update the docs for `Task` to mention the fact that they default to sticky. Co-authored-by: Gabriel Baraldi (cherry picked from commit 5466d3d082e0dd1608351fb5f9be6d5ec3ae7056) --- base/docs/basedocs.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/base/docs/basedocs.jl b/base/docs/basedocs.jl index fd8c35a5fdf760..b0aadb2b97fff9 100644 --- a/base/docs/basedocs.jl +++ b/base/docs/basedocs.jl @@ -1744,6 +1744,12 @@ Create a `Task` (i.e. coroutine) to execute the given function `func` (which must be callable with no arguments). The task exits when this function returns. The task will run in the "world age" from the parent at construction when [`schedule`](@ref)d. +!!! warning + By default tasks will have the sticky bit set to true `t.sticky`. This models the + historic default for [`@async`](@ref). Sticky tasks can only be run on the worker thread + they are first scheduled on. To obtain the behavior of [`Threads.@spawn`](@ref) set the sticky + bit manually to `false`. + # Examples ```jldoctest julia> a() = sum(i for i in 1:1000);