<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ruby.git/thread_none.h, branch ruby_3_2</title>
<subtitle>github.com: ruby/ruby.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/'/>
<entry>
<title>introduce struct `rb_native_thread`</title>
<updated>2022-04-22T18:08:27+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2022-04-22T12:19:03+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=03d21a4fb099da7c52e6591e17704c297871b7db'/>
<id>03d21a4fb099da7c52e6591e17704c297871b7db</id>
<content type='text'>
`rb_thread_t` contained `native_thread_data_t` to represent
thread implementation dependent data. This patch separates
them and rename it `rb_native_thread` and point it from
`rb_thraed_t`.

Now, 1 Ruby thread (`rb_thread_t`) has 1 native thread (`rb_native_thread`).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`rb_thread_t` contained `native_thread_data_t` to represent
thread implementation dependent data. This patch separates
them and rename it `rb_native_thread` and point it from
`rb_thraed_t`.

Now, 1 Ruby thread (`rb_thread_t`) has 1 native thread (`rb_native_thread`).
</pre>
</div>
</content>
</entry>
<entry>
<title>rename thread internal naming</title>
<updated>2022-04-21T22:54:09+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2022-04-16T18:40:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=1c4fc0241d125879e1e5169f267f26637772f3a7'/>
<id>1c4fc0241d125879e1e5169f267f26637772f3a7</id>
<content type='text'>
Now GVL is not process *Global* so this patch try to use
another words.

* `rb_global_vm_lock_t` -&gt; `struct rb_thread_sched`
  * `gvl-&gt;owner` -&gt; `sched-&gt;running`
  * `gvl-&gt;waitq` -&gt; `sched-&gt;readyq`
* `rb_gvl_init` -&gt; `rb_thread_sched_init`
* `gvl_destroy` -&gt; `rb_thread_sched_destroy`
* `gvl_acquire` -&gt; `thread_sched_to_running` # waiting -&gt; ready -&gt; running
* `gvl_release` -&gt; `thread_sched_to_waiting` # running -&gt; waiting
* `gvl_yield`   -&gt; `thread_sched_yield`
* `GVL_UNLOCK_BEGIN` -&gt; `THREAD_BLOCKING_BEGIN`
* `GVL_UNLOCK_END` -&gt; `THREAD_BLOCKING_END`

* removed
  * `rb_ractor_gvl`
  * `rb_vm_gvl_destroy` (not used)

There are GVL functions such as `rb_thread_call_without_gvl()` yet
but I don't have good name to replace them. Maybe GVL stands for
"Greate Valuable Lock" or something like that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now GVL is not process *Global* so this patch try to use
another words.

* `rb_global_vm_lock_t` -&gt; `struct rb_thread_sched`
  * `gvl-&gt;owner` -&gt; `sched-&gt;running`
  * `gvl-&gt;waitq` -&gt; `sched-&gt;readyq`
* `rb_gvl_init` -&gt; `rb_thread_sched_init`
* `gvl_destroy` -&gt; `rb_thread_sched_destroy`
* `gvl_acquire` -&gt; `thread_sched_to_running` # waiting -&gt; ready -&gt; running
* `gvl_release` -&gt; `thread_sched_to_waiting` # running -&gt; waiting
* `gvl_yield`   -&gt; `thread_sched_yield`
* `GVL_UNLOCK_BEGIN` -&gt; `THREAD_BLOCKING_BEGIN`
* `GVL_UNLOCK_END` -&gt; `THREAD_BLOCKING_END`

* removed
  * `rb_ractor_gvl`
  * `rb_vm_gvl_destroy` (not used)

There are GVL functions such as `rb_thread_call_without_gvl()` yet
but I don't have good name to replace them. Maybe GVL stands for
"Greate Valuable Lock" or something like that.
</pre>
</div>
</content>
</entry>
<entry>
<title>[wasm] add no thread variant for freestanding environment</title>
<updated>2022-01-19T02:19:06+00:00</updated>
<author>
<name>Yuta Saito</name>
<email>kateinoigakukun@gmail.com</email>
</author>
<published>2022-01-15T15:37:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=420622b5a793186dfa533e7702913fd5e4764e0f'/>
<id>420622b5a793186dfa533e7702913fd5e4764e0f</id>
<content type='text'>
This implementation does nothing around preemptive context switching
because there is no native thread.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implementation does nothing around preemptive context switching
because there is no native thread.
</pre>
</div>
</content>
</entry>
</feed>
