Commit Graph

54 Commits

Author SHA1 Message Date
李通洲 f7db03b8c4 Processing (*nix): use traditional fork-exec on Android and OpenBSD
Fix https://github.com/termux/termux-packages/issues/25369
2025-07-18 10:37:52 +08:00
李通洲 6f3ed4a7b4 Processing (Linux): cache the index of $LANG 2025-07-15 10:22:56 +08:00
Carter Li 2eda6464ad Processing (Linux): use posix_spawnp for better performance 2025-07-09 23:56:02 +08:00
Carter Li 92fe44183d Shell (SunOS): ignore leading - 2025-06-22 12:12:49 +08:00
Carter Li 1137e8d1c9 Processing (Haiku): fix exe detection 2025-02-18 19:49:40 +08:00
李通洲 b8b2fab499 Haiku: fix building 2025-02-18 15:49:39 +08:00
李通洲 8dc4f77f42 Shell (Haiku): fix arg0 detection 2025-02-18 09:17:55 +08:00
Carter Li 948a965c7a Terminal (Haiku): detect terminal version 2025-02-17 21:22:12 +08:00
Carter Li c585e09ef0 Processing (Haiku): support exe path detection 2025-02-13 22:39:45 +00:00
李通洲 d3a5f986a8 Terminal (Haiku): add basic support 2025-02-12 00:44:41 +08:00
李通洲 8774fb3fb7 Shell (OpenBSD): trim - for login shells 2025-02-05 16:10:42 +08:00
李通洲 7f212025de Processing (Unix): better pipe2(2) existance check 2025-02-05 15:36:09 +08:00
李通洲 e9ab67b380 Processing (Linux): interrupt poll & read syscalls when the child process is exited
Fix #1418
2024-12-02 16:02:04 +08:00
李通洲 2cfc8ec0db Processing (macOS): fix exe path detection 2024-11-13 10:46:30 +08:00
Carter Li c368908b7d Shell (macOS): try fixing segfault in old macOS
Ref: #1388
2024-11-11 17:49:49 +08:00
Carter Li f7288fec01 Global: support DragonFly BSD 2024-11-03 08:35:11 +08:00
Carter Li cae8286621 Shell / Terminal: fix proc path detection 2024-10-31 00:25:40 +08:00
李通洲 4665fdd145 Global: make it compile on NetBSD
Doesn't work yet.
2024-10-27 11:43:36 +08:00
李通洲 b257134d74 Chore: introduce macro ARRAY_SIZE 2024-10-18 16:44:41 +08:00
apocelipes bbc9cf4980 Processing(Linux, SunOS): little optimizations (#1341) 2024-10-14 11:35:29 +08:00
Carter Li a32d9d788c OpenBSD: init platform support 2024-10-04 17:49:18 +08:00
Carter Li 76b8446d15 InitSystem (SunOS): fix crashes 2024-06-17 15:18:02 +08:00
Carter Li 6473db86a3 SunOS: support shell & terminal detection 2024-06-17 14:47:47 +08:00
Carter Li 898bf1edd9 SunOS: support InitSystem 2024-06-17 14:47:47 +08:00
李通洲 44257b7ede Shell: don't try to get arg1 if python was executed without extra args 2024-05-30 09:58:06 +08:00
李通洲 d7e9094297 Shell (macOS): better xonsh detection
Fix #977
2024-05-30 09:31:25 +08:00
李通洲 e8dc500f24 Processing (Linux): return errors more actively
fix assertion errors
2024-05-29 16:24:18 +08:00
李通洲 90690ba315 InitSystem: add new module
Fix #974
2024-05-29 11:14:39 +08:00
李通洲 3811bb1be4 TerminalShell: move process info query logic into common place 2024-05-28 23:43:15 +08:00
李通洲 36a0c273f9 Processing: suggest increasing --processing-timeout when child process timeouts 2024-04-30 14:52:47 +08:00
李通洲 947d2ff0a9 Processing (Linux): return error when command is not found 2024-01-18 14:54:14 +08:00
李通洲 82581aa9e4 Processing: increase buffer size 2023-12-04 15:10:58 +08:00
apocelipes 53922779ba fix(Common): fixes for ffProcessAppendOutput
- Use pipe2 on Linux and BSDs, which can set all flags through a single syscall.
- macOS/darwin does not support pipe2, add a wrapper for it.
- Close pipes when fork() failed. These fds should be closed when
  the function returns.
- Set O_CLOEXEC at pipes, the exec() family of functions will close
  this fds automatically.
- Use _exit instead of exit. Exit calls the callbacks registered by atexit
  and flushes the stdio's buffer, which can lead to some unexpected behavior,
  especially after an exec syscall failure.
- Fix timeout.
- Not use non-blocking IO. because we only wait for one file, and cannot
  do other things during waiting.
2023-11-30 10:10:40 +08:00
Marius Messerschmidt 975081aa27 ClangTidy: make pid pointer const 2023-11-18 12:31:57 +01:00
李通洲 c504096181 Processing (Linux): fix hanging if a child process prints to both stdout and stderr 2023-10-31 14:06:08 +08:00
李通洲 bed1b4cf0f Global: move general options to a new separate folder 2023-10-25 13:39:13 +08:00
李通洲 88c12486bf Processing (Linux): always set LANG to C before executing child process 2023-09-27 15:02:55 +08:00
李通洲 2aa637ecc8 Processing (Linux): don't return on POLLHUP
In case child process finishs too fast
2023-07-24 21:30:41 +08:00
李通洲 a9466654b2 Processing (macOS): fix compiling 2023-07-15 08:25:57 +08:00
李通洲 87ebdef8df Processing (Linux): don't leave zombie processes 2023-07-15 00:33:38 +08:00
李通洲 dfefb802d0 Processing (Linux): always poll before read 2023-07-11 20:28:59 +08:00
李通洲 11adefd839 Processing (Windows): fix hanging when executing cygwin processes 2023-07-11 19:45:16 +08:00
李通洲 ced2347829 Processing (Linux): fix potential hang when reading large buffer
`write` in child process blocks when the pipe is full. However because we are `waitpid`ing, we don't read the pipe, so that the pipe is never free. Therefore `write` in child process blocks forever and `waitpid` hangs.

Fix #493
2023-07-11 11:13:13 +08:00
李通洲 7dae59ee92 Processing: add --processing-timeout 2023-07-10 22:20:30 +08:00
李通洲 d53b584ba2 Processing (Windows): support timeout 2023-07-10 21:02:13 +08:00
李通洲 9c9ba2f1a1 CI (Linux): fix build on musl 2023-07-10 18:10:59 +08:00
李通洲 c1b2ebc66e CI: fix compiling errors 2023-07-10 18:04:21 +08:00
李通洲 ad9103c767 Processing (Linux): support timeout 2023-07-10 17:12:18 +08:00
李通洲 e611ce5733 Processing (Linux): don't hang on waitpid(2) 2023-07-10 15:26:10 +08:00
李通洲 d5f0ccae88 LM (Linux): try fixing LightDM version detection 2023-07-10 09:39:24 +08:00