From 9a275a770f9e11a8394184741bf5ad4454c1ac4b 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 ec5807f791f34..052da99d2a202 100644 --- a/base/docs/basedocs.jl +++ b/base/docs/basedocs.jl @@ -1692,6 +1692,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);