Age | Commit message (Collapse) | Author |
|
Co-authored-by: Nobuyoshi Nakada <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/5270
Merged-By: nobu <[email protected]>
|
|
* Some code replace and using RBOOL macro
* Fix indent
* Using RBOOL in syserr_eqq function
Notes:
Merged-By: nobu <[email protected]>
|
|
* process.c: Add Process._fork
This API is supposed for application monitoring libraries to hook fork
event.
[Feature #17795]
Co-authored-by: Nobuyoshi Nakada <[email protected]>
Notes:
Merged-By: mame <[email protected]>
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4595
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4595
|
|
Instead of looking for Object::ENV (which can be overwritten),
directly look for the envtbl variable. As that is static in hash.c,
and the lookup code is in process.c, add a couple non-static
functions that will return envtbl (or envtbl#to_hash).
Fixes [Bug #18164]
Notes:
Merged: https://github.com/ruby/ruby/pull/4834
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4791
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4782
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4745
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4745
|
|
|
|
Shell reserved words and special built-in commands can be placed
at only the beginning of the command (except for leading white
spaces).
|
|
The environment variable `RUBYSHELL` is used only on Windows, as
well as `COMSPEC`.
Notes:
Merged: https://github.com/ruby/ruby/pull/4694
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4665
Merged-By: nobu <[email protected]>
|
|
All occurrences of rb_fork_ruby are followed by a call rb_thread_fork in
the created child process.
This is refactoring and a potential preparation for [Feature #17795].
(rb_fork_ruby may be wrapped by Process._fork_.)
|
|
|
|
* Rename `rb_scheduler` to `rb_fiber_scheduler`.
* Use public interface if available.
* Use `rb_check_funcall` where possible.
* Don't use `unblock` unless the fiber was non-blocking.
Notes:
Merged-By: ioquatix <[email protected]>
|
|
pst_pid() no longer returns Qnil even if the receiver is not
initialized.
|
|
To propagate errno in the fiber thread scheduler hook.
Returns nil when no terminated process.
Notes:
Merged: https://github.com/ruby/ruby/pull/3998
|
|
Has been deprecated since 44c53ee473d3b3973cb5c3ce03fbf4f280fd75ff.
Notes:
Merged: https://github.com/ruby/ruby/pull/3969
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3934
|
|
alias_method"
This reverts commit 81739ad4fdfcc86a769056fec352f27c686fba1b.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3757
|
|
|
|
|
|
|
|
|
|
|
|
* revert `rb_last_status_set`
* renamed the new function as `rb_process_status_new`
* `rb_process_status_new` always freezes the return value
* marked `Process::Status.wait` as EXPERIMENTAL, as it has not
been discussed totally yet.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3853
|
|
getaddrinfo_a() gets stuck after fork().
To avoid this, we need 1 second sleep to wait for internal
worker threads of getaddrinfo_a() to be finished, but that is unacceptable.
[Bug #17220] [Feature #17134] [Feature #17187]
|
|
Previously, rb_getaddrinfo_a_before_exec() is called from before_exec().
However, the function needs to be called only before fork().
The change moves it to before_fork().
|
|
We need stop worker threads in getaddrinfo_a() before fork().
This change adds a hook before fork() that cancel all outstanding requests
and wait for all ongoing requests. Then, it waits for all worker
threads to be finished.
Fixes [Bug #17220]
|
|
:bow:
|
|
To make some kind of Ractor related extensions, some functions
should be exposed.
* include/ruby/thread_native.h
* rb_native_mutex_*
* rb_native_cond_*
* include/ruby/ractor.h
* RB_OBJ_SHAREABLE_P(obj)
* rb_ractor_shareable_p(obj)
* rb_ractor_std*()
* rb_cRactor
and rm ractor_pub.h
and rename srcdir/ractor.h to srcdir/ractor_core.h
(to avoid conflict with include/ruby/ractor.h)
Notes:
Merged: https://github.com/ruby/ruby/pull/3775
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3742
|
|
It seems immutable information.
Notes:
Merged: https://github.com/ruby/ruby/pull/3671
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3589
|
|
Some global variables should be used from non-main Ractors.
[Bug #17268]
```ruby
# ractor-local (derived from created ractor): debug
'$DEBUG' => $DEBUG,
'$-d' => $-d,
# ractor-local (derived from created ractor): verbose
'$VERBOSE' => $VERBOSE,
'$-w' => $-w,
'$-W' => $-W,
'$-v' => $-v,
# process-local (readonly): other commandline parameters
'$-p' => $-p,
'$-l' => $-l,
'$-a' => $-a,
# process-local (readonly): getpid
'$$' => $$,
# thread local: process result
'$?' => $?,
# scope local: match
'$~' => $~.inspect,
'$&' => $&,
'$`' => $`,
'$\'' => $',
'$+' => $+,
'$1' => $1,
# scope local: last line
'$_' => $_,
# scope local: last backtrace
'$@' => $@,
'$!' => $!,
# ractor local: stdin, out, err
'$stdin' => $stdin.inspect,
'$stdout' => $stdout.inspect,
'$stderr' => $stderr.inspect,
```
Notes:
Merged: https://github.com/ruby/ruby/pull/3670
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more details about Ractor.
See ticket [Feature #17100] to see the implementation details
and discussions.
[Feature #17100]
This commit does not complete the implementation. You can find
many bugs on using Ractor. Also the specification will be changed
so that this feature is experimental. You will see a warning when
you make the first Ractor with `Ractor.new`.
I hope this feature can help programmers from thread-safety issues.
Notes:
Merged: https://github.com/ruby/ruby/pull/3365
|
|
https://rubyci.org/logs/rubyci.s3.amazonaws.com/freebsd12/ruby-master/log/20200821T223002Z.fail.html.gz
```
process.c:5593:37: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
while ((gle = getlogin_r(login, loginsize)) != 0) {
~~~~~~~~~~ ^~~~~~~~~
```
type of getlogin_r's 2nd argument is
- int on FreeBSD
- https://www.freebsd.org/cgi/man.cgi?query=getlogin_r&apropos=0&sektion=0&manpath=FreeBSD+12.1-RELEASE+and+Ports&arch=default&format=html
- size_t on Linux, NetBSD
- https://man7.org/linux/man-pages/man3/getlogin_r.3.html
- https://www.freebsd.org/cgi/man.cgi?query=getlogin_r&apropos=0&sektion=0&manpath=NetBSD+9.0&arch=default&format=html
|
|
Correctly capture thread before releasing GVL and pass as argument to
`rb_thread_scheduler_if_nonblocking`.
Notes:
Merged: https://github.com/ruby/ruby/pull/3323
|
|
Not every compilers understand that rb_raise does not return. When a
function does not end with a return statement, such compilers can issue
warnings. We would better tell them about reachabilities.
Notes:
Merged: https://github.com/ruby/ruby/pull/3247
|
|
I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea. Better refactor.
Notes:
Merged: https://github.com/ruby/ruby/pull/3247
|
|
I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea. Better refactor.
Notes:
Merged: https://github.com/ruby/ruby/pull/3247
|
|
|