diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-12-01 23:01:28 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-12-01 23:01:28 +0900 |
commit | 01790de9e625b48272dc8ba3e9ce94787fb5a519 (patch) | |
tree | 028e628ec588b7165a45fcc38d2dc879d942e902 /NEWS.md | |
parent | 0436f1e15a8e79ffef5ea412ac1312cbf9f063e6 (diff) |
Fix indents in NEWS [ci skip]
The MarkDown parser in RDoc requires 4 columns indentation for
paragraphs following list items. Otherwise, the following paragraphs
are not interpreted as the part of the preceeding list item,
Diffstat (limited to 'NEWS.md')
-rw-r--r-- | NEWS.md | 64 |
1 files changed, 33 insertions, 31 deletions
@@ -104,42 +104,44 @@ Note: We're only listing outstanding class updates. * Fiber - * Introduce `Fiber.[]` and `Fiber.[]=` for inheritable fiber storage. - Introduce `Fiber#storage` and `Fiber#storage=` (experimental) for getting - and resetting the current storage. Introduce `Fiber.new(storage:)` for - setting the storage when creating a fiber. [[Feature #19078]] - - Existing Thread and Fiber local variables can be tricky to use. Thread - local variables are shared between all fibers, making it hard to isolate, - while Fiber local variables can be hard to share. It is often desirable - to define unit of execution ("execution context") such that some state - is shared between all fibers and threads created in that context. This is - what Fiber storage provides. - - ```ruby - def log(message) - puts "#{Fiber[:request_id]}: #{message}" - end - - def handle_requests - while request = read_request - Fiber.schedule do - Fiber[:request_id] = SecureRandom.uuid - - request.messages.each do |message| - Fiber.schedule do - log("Handling #{message}") # Log includes inherited request_id. + * Introduce Fiber.[] and Fiber.[]= for inheritable fiber storage. + Introduce Fiber#storage and Fiber#storage= (experimental) for + getting and resetting the current storage. Introduce + `Fiber.new(storage:)` for setting the storage when creating a + fiber. [[Feature #19078]] + + Existing Thread and Fiber local variables can be tricky to use. + Thread local variables are shared between all fibers, making it + hard to isolate, while Fiber local variables can be hard to + share. It is often desirable to define unit of execution + ("execution context") such that some state is shared between all + fibers and threads created in that context. This is what Fiber + storage provides. + + ```ruby + def log(message) + puts "#{Fiber[:request_id]}: #{message}" + end + + def handle_requests + while request = read_request + Fiber.schedule do + Fiber[:request_id] = SecureRandom.uuid + + request.messages.each do |message| + Fiber.schedule do + log("Handling #{message}") # Log includes inherited request_id. + end end end end end - end - ``` + ``` - You should generally consider Fiber storage for any state which you want - to be shared implicitly between all fibers and threads created in a given - context, e.g. a connection pool, a request id, a logger level, - environment variables, configuration, etc. + You should generally consider Fiber storage for any state which + you want to be shared implicitly between all fibers and threads + created in a given context, e.g. a connection pool, a request + id, a logger level, environment variables, configuration, etc. * Fiber::Scheduler |