From: mp+rubylang@...
Date: 2019-06-09T00:05:45+00:00
Subject: [ruby-core:93028] [Ruby trunk Feature#15909] Improve Thread#exit	documentation

Issue #15909 has been reported by womble (Matt Palmer).

----------------------------------------
Feature #15909: Improve Thread#exit documentation
https://bugs.ruby-lang.org/issues/15909

* Author: womble (Matt Palmer)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Whilst writing some low-level threading code, I came across a couple of unexpected (though useful) behaviours of `Thread#exit` (aka `#kill`, `#terminate`) that I think are worth documenting for the benefit of future generations.  Attached is my attempt to write that documentation.  Further, I found what I think are some inaccuracies in the existing documentation for `Thread#exit`, so I attempted to fix those, too.

Detailed rationale for each change, in order of their appearance in the patch:

* As far as I can see, all `return` calls return `thread`, and `thread` is never mutated, so I can't see a way `nil` could ever be returned.
* The thread is not *actually* terminated by this method; instead, it is merely marked to be terminated.
* I can't find anywhere in the call tree that pokes the thread scheduler to run another thread.
* `ensure` blocks being run, rather than the thread just immediately up and dying, was the first unexpected behaviour I came across.
* Being able to defer termination via `.handle_interrupt` was the second unexpected behaviour I found.

---Files--------------------------------
thread_kill_docs.patch (954 Bytes)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>