diff options
| author | Po Lu | 2023-05-20 16:54:13 +0800 |
|---|---|---|
| committer | Po Lu | 2023-05-20 16:54:13 +0800 |
| commit | d86643a7863cef268b69d7925e0982bdb70ba672 (patch) | |
| tree | f6f7edab475f13225d1691fcc58dd74e1915a6cd /exec | |
| parent | 181453285c67783ebf8eb269dc19fdb0e563af62 (diff) | |
| download | emacs-d86643a7863cef268b69d7925e0982bdb70ba672.tar.gz emacs-d86643a7863cef268b69d7925e0982bdb70ba672.zip | |
Remove arbitrary process count limit
* exec/trace.c (handle_clone_prepare):
(handle_clone): When !REENTRANT, use malloc to allocate
tracees after running out of static ones.
Diffstat (limited to 'exec')
| -rw-r--r-- | exec/trace.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/exec/trace.c b/exec/trace.c index 974df1dd5e1..23db8ebcbc7 100644 --- a/exec/trace.c +++ b/exec/trace.c | |||
| @@ -456,6 +456,12 @@ handle_clone_prepare (struct exec_tracee *parent) | |||
| 456 | tracee = &static_tracees[tracees]; | 456 | tracee = &static_tracees[tracees]; |
| 457 | tracees++; | 457 | tracees++; |
| 458 | } | 458 | } |
| 459 | #ifndef REENTRANT | ||
| 460 | /* Try to allocate a tracee using `malloc' if this library is | ||
| 461 | not being built to run inside a signal handler. */ | ||
| 462 | else if ((tracee = malloc (sizeof *tracee))) | ||
| 463 | ; | ||
| 464 | #endif /* REENTRANT */ | ||
| 459 | else | 465 | else |
| 460 | return; | 466 | return; |
| 461 | 467 | ||
| @@ -506,6 +512,12 @@ handle_clone (struct exec_tracee *tracee, pid_t pid) | |||
| 506 | tracee = &static_tracees[tracees]; | 512 | tracee = &static_tracees[tracees]; |
| 507 | tracees++; | 513 | tracees++; |
| 508 | } | 514 | } |
| 515 | #ifndef REENTRANT | ||
| 516 | /* Try to allocate a tracee using `malloc' if this library is | ||
| 517 | not being built to run inside a signal handler. */ | ||
| 518 | else if ((tracee = malloc (sizeof *tracee))) | ||
| 519 | ; | ||
| 520 | #endif /* REENTRANT */ | ||
| 509 | else | 521 | else |
| 510 | return 1; | 522 | return 1; |
| 511 | 523 | ||