aboutsummaryrefslogtreecommitdiffstats
path: root/process.c
Commit message (Collapse)AuthorAgeFilesLines
* Followed up 796069b2882d8a67ecc36bda7c72affcbad09daeHiroshi SHIBATA2022-09-221-0/+4
|
* getrlimit adding RLIMIT_NPTS constant.David Carlier2022-09-211-0/+8
|
* [DOC] Tweak the doc for `Process.kill` signatureKoichi ITO2022-09-211-1/+1
| | | | | | | | | | | | | Replacing `...` with `*pids` seems to clarify the expected variadic arguments. Note that the expected arguments are two or more with a signal and pids. That is, the method must have at least one pid, which cannot be omitted: ```console % ruby -e 'Process.kill(0)' -e:1:in `kill': wrong number of arguments (given 1, expected 2+) (ArgumentError) from -e:1:in `<main>' ```
* Ignore EPERM which means already being process-leaderNobuyoshi Nakada2022-09-201-1/+2
|
* Reduce fork calls in daemonNobuyoshi Nakada2022-09-191-10/+4
| | | | | | The forked child process is a grandchild process from the viewpoint of the process which invoked the caller process. That means the child is detached at that point, and it does not need to fork twice.
* MJIT: Do not hang after forking with threadsTakashi Kokubun2022-09-111-0/+1
| | | | | | | | | | | First, rb_mjit_fork should call rb_thread_atfork to stop threads after fork in the child process. Unfortunately, we cannot use rb_fork_ruby to prevent this kind of mistakes because MJIT needs special handling of waiting_pid and mjit_pause/resume. Second, mjit_waitpid_finished should be checked regardless of trap_interrupt. It doesn't seem like the flag is not set when SIGCHLD is handled for an MJIT child process.
* Call appropriate hooks on MJIT's forkTakashi Kokubun2022-09-041-0/+23
| | | | This takes care of signal_self_pipe and other things.
* Short-circuit `Process._fork`Nobuyoshi Nakada2022-08-121-9/+22
|
* Stop using casted `rb_syswait` as `proc_syswait`Nobuyoshi Nakada2022-08-071-5/+1
| | | | | | The argument of `rb_syswait` is now `rb_pid_t` which may differ from `int`. Also it is an undefined behavior to take the result of casted void function (in `rb_protect`).
* Fix the sizes comparisonNobuyoshi Nakada2022-08-061-1/+1
| | | | `proc_syswait` will be called with a `VALUE` argument.
* [DOC] Process._fork does not get called by Process.daemonIvo Anjo2022-08-051-0/+7
| | | | | | | | | As discussed in [Bug #18911], I'm adding some documentation to `Process._fork` to clarify that it is not expected to cover calls to `Process.daemon`. [Bug #18911]: https://bugs.ruby-lang.org/issues/18911 Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
* Expand tabs [ci skip]Takashi Kokubun2022-07-211-739/+739
| | | | [Misc #18891]
* [DOC] Document `Process::Tms`Nobuyoshi Nakada2022-06-281-1/+16
|
* Allow to just warn as bool expected, without an exceptionNobuyoshi Nakada2022-06-201-1/+1
|
* Remove MJIT worker thread (#6006)Takashi Kokubun2022-06-151-62/+22
| | | [Misc #18830]
* [ci skip] Fix docsPeter Zhu2022-04-131-1/+1
|
* Fix some RDoc links (#5778)Burdette Lamar2022-04-081-1/+1
|
* Prefix ccan headers (#4568)Nobuyoshi Nakada2022-03-301-19/+19
| | | | | | | | | | | | | * Prefixed ccan headers * Remove unprefixed names in ccan/build_assert * Remove unprefixed names in ccan/check_type * Remove unprefixed names in ccan/container_of * Remove unprefixed names in ccan/list Co-authored-by: Samuel Williams <samuel.williams@oriontransfer.co.nz>
* [DOC] Fix documentation typo for Process#clock_gettimeThierry Joyal2022-03-071-1/+1
| | | | Fixes [Misc #18610]
* Use symbols for clock IDs if `clockid_t` is not numericNobuyoshi Nakada2022-02-191-19/+134
|
* Set static IDs to same name variablesNobuyoshi Nakada2022-02-191-30/+31
|
* Enhanced RDoc concerning command injection (#5537)Burdette Lamar2022-02-181-0/+3
| | | | | | | | | | | | | | | | Clarifies security vulnerabilities for commands. Treats: Kernel.system Kernel.` (backtick) IO.popen IO.read IO.write IO.binread IO.binwrite IO.readlines IO.foreach
* Accurately report VM memsizeKevin Newton2022-01-211-0/+15
| | | | | | Currently the calculation only counts the size of the struct. This commit adds the size of the associated st tables, id tables, and linked lists. Still missing is the size of the ractors and (potentially) the size of the object space.
* [DOC] Enhanced Process.groups relatedNobuyoshi Nakada2022-01-191-6/+7
| | | | | | * On some platforms (e.g., macOS), the user's default group access list may exceed `NGROUPS_MAX`. * Use upcase "GID" instead of "gid" for other than variable names.
* [Feature #18491] Drop support for HP-UXPeter Zhu2022-01-181-1/+0
| | | | | IA64 support was dropped in ticket #15894, so we can drop support for HP-UX.
* Replace to RBOOL macroS-H-GAMELINKS2022-01-171-6/+1
|
* [DOC] Fix docs rendering for Process._fork [ci skip]Matheus Richard2021-12-151-2/+2
| | | Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* Some codes replace to `RBOOL` macro (#5023)S.H2021-11-091-16/+4
| | | | | | | * Some code replace and using RBOOL macro * Fix indent * Using RBOOL in syserr_eqq function
* process.c: Add Process._fork (#5017)Yusuke Endoh2021-10-251-9/+39
| | | | | | | | | | * process.c: Add Process._fork This API is supposed for application monitoring libraries to hook fork event. [Feature #17795] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* Fill pid and error in the statusNobuyoshi Nakada2021-10-191-2/+7
|
* Rework order of operations to better handle last_status.Samuel Williams2021-09-221-9/+6
|
* Add support for non-blocking `Kernel.system`.Samuel Williams2021-09-221-64/+109
|
* Handle overwriting Object::ENV in spawnJeremy Evans2021-09-141-5/+6
| | | | | | | | | 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]
* Replace RBOOL macroS-H-GAMELINKS2021-09-051-1/+1
|
* Add Windows as a supported OS for Process.clock_gettime [ci skip]Lars Kanis2021-08-281-2/+2
|
* `popen()` is not available on emscriptenNobuyoshi Nakada2021-08-161-1/+1
|
* Suppress unused-variable warningsNobuyoshi Nakada2021-08-161-2/+2
|
* [DOC] mention how the command is passed to the shell [ci skip]Nobuyoshi Nakada2021-08-031-1/+2
|
* [DOC] Fix Process::exec documentation [ci skip]Nobuyoshi Nakada2021-07-311-1/+1
| | | | | | Shell reserved words and special built-in commands can be placed at only the beginning of the command (except for leading white spaces).
* [DOC] Fix Process::exec documentation [ci skip]Nobuyoshi Nakada2021-07-301-2/+2
| | | | | The environment variable `RUBYSHELL` is used only on Windows, as well as `COMSPEC`.
* Remove unneeded function declarationsS.H2021-07-221-4/+0
|
* process.c: Call rb_thread_atfork in rb_fork_rubyYusuke Endoh2021-07-151-3/+4
| | | | | | | | 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_.)
* Replace copy coroutine with pthread implementation.Samuel Williams2021-07-011-14/+10
|
* Expose scheduler as public interface & bug fixes. (#3945)Samuel Williams2021-02-091-7/+6
| | | | | | | | | * 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.
* Updated access to Process::Status attributesNobuyoshi Nakada2020-12-241-14/+25
| | | | | pst_pid() no longer returns Qnil even if the receiver is not initialized.
* Store errno in struct rb_process_statusNobuyoshi Nakada2020-12-241-16/+21
| | | | | To propagate errno in the fiber thread scheduler hook. Returns nil when no terminated process.
* Struct::Tms: delete卜部昌平2020-12-221-3/+0
| | | | Has been deprecated since 44c53ee473d3b3973cb5c3ce03fbf4f280fd75ff.
* Fixed indefinite articles before "Integer" [ci skip]Nobuyoshi Nakada2020-12-211-1/+1
|
* Remove unused variableRadosław Bułat2020-12-191-2/+1
|
* Revert "Better cooperation between public/protected/private with attr* and ↵Yusuke Endoh2020-12-181-1/+2
| | | | | | alias_method" This reverts commit 81739ad4fdfcc86a769056fec352f27c686fba1b.