Alexander Stecher
98573ed7c0
refactor: extract the state module and make the backoff error instead of panic
...
This PR:
- moves state.go to its own module
- moves the phpheaders test the phpheaders module
- simplifies backoff.go
- makes the backoff error instead of panic (so it can be tested)
- removes some unused C structs
2025-12-02 23:10:12 +01:00
Kévin Dunglas
6c764ad9c5
fix: correctly set the Mercure hub for the main worker request
2025-11-24 11:21:45 +01:00
Kévin Dunglas
8341cc98c6
refactor: rely on context.Context for log/slog and others ( #1969 )
...
* refactor: rely on context.Context for log/slog and others
* optimize
* refactor
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix watcher-skip
* better globals handling
* fix
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-17 16:32:23 +01:00
Alexander Stecher
1270784cd3
suggestion: external worker api ( #1928 )
...
* Cleaner request apis.
2025-10-29 11:36:33 +01:00
Kévin Dunglas
9b8d215727
refactor: improve Worker public API and docs
2025-10-29 11:36:33 +01:00
Kévin Dunglas
f7756717b5
feat: allow creating strongly typed slices and maps from PHP values with type utilities ( #1933 )
...
* feat: use generics in type functions for better type support
* various improvements
* better docs
* update docs
2025-10-21 11:20:54 +02:00
Kévin Dunglas
e917ab7974
fix: callback parameters handling in worker extensions
2025-10-09 15:42:29 +02:00
Kévin Dunglas
c42d287138
refactor: extension worker ( #1910 )
...
* refactor: extension worker
* feat: optional HTTP request
* allow passing unsafe.Pointer to the extension callback
* lint
* simplify
2025-10-09 14:10:09 +02:00
Rob Landers
52df300f86
feat: custom workers initial support ( #1795 )
...
* create a simple thread framework
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add tests
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix comment
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* remove mention of an old function that no longer exists
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* simplify providing a request
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* satisfy linter
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add error handling and handle shutdowns
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add tests
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* pipes are tied to workers, not threads
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix test
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add a way to detect when a request is completed
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* we never shutdown workers or remove them, so we do not need this
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* add more comments
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* Simplify modular threads (#1874 )
* Simplify
* remove unused variable
* log thread index
* feat: allow passing parameters to the PHP callback and accessing its return value (#1881 )
* fix formatting
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix test compilation
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* fix segfaults
Signed-off-by: Robert Landers <landers.robert@gmail.com >
* Update frankenphp.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
---------
Signed-off-by: Robert Landers <landers.robert@gmail.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-09-18 09:21:49 +02:00
Alexander Stecher
c10e85b905
refactor: cleanup context ( #1816 )
...
* Removes NewRequestWithContext.
* Moves cgi logic to cgi.go
* Calls 'update_request_info' from the C side.
* Calls 'update_request_info' from the C side.
* clang-format
* Removes unnecessary export.
* Adds TODO.
* Adds TODO.
* Removes 'is_worker_thread'
* Shortens return statement.
* Removes the context refactor.
* adjusts comment.
* Skips parsing cgi path variables on explicitly assigned worker.
* suggesions by @dunglas.
* Re-introduces 'is_worker_thread'.
* More formatting.
2025-08-25 16:18:20 +02:00
Alexandre Daubois
96400a85d0
feat(worker): make maximum consecutive failures configurable ( #1692 )
2025-06-30 09:38:18 +02:00
Kévin Dunglas
bf5c98410b
chore: log thread ( #1589 )
2025-05-20 10:10:46 +02:00
Kévin Dunglas
cf7541fde6
chore: add more logs for the worker
2025-05-19 22:43:54 +02:00
Indra Gunawan
a6e1d3554d
fix negative frankenphp_ready_workers metrics ( #1491 )
2025-05-01 02:05:23 +02:00
Kévin Dunglas
8583afd83e
chore: add context to logs to make the linter happy ( #1533 )
2025-04-29 01:08:15 +02:00
Indra Gunawan
1ec37f6cc9
feat: replace zap with slog ( #1527 )
2025-04-26 11:04:46 +02:00
Indra Gunawan
87315a19ae
feat: introduces worker name option, use label on worker metrics instead ( #1376 )
...
* add worker name option and use it in logs and metrics, update tests
* fix missing reference for collector
* update tests
* update docs
* fix conflict
* add missing allowedDirectives
* update tests
2025-03-22 12:32:59 +01:00
Alexander Stecher
8d9ce15849
fix: log worker failures ( #1437 )
...
* Small fixes on error.
* Adds comments.
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-03-10 22:49:58 +01:00
Alexander Stecher
f50248a7d2
refactor: removes context on the C side ( #1404 )
2025-03-10 08:44:03 +01:00
Alexander Stecher
c57f741d83
fix: concurrent env access ( #1409 )
2025-03-01 14:45:04 +01:00
Alexander Stecher
db3e1a047c
fix: race condition revealed by tests ( #1403 )
...
* Resolves a race condition
* Removes unused code.
* trigger build
* Removes accidental files.
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-02-21 19:09:08 +01:00
Alliballibaba2
072151dfee
feat: Adds automatic thread scaling at runtime and php_ini configuration in Caddyfile ( #1266 )
...
Adds option to scale threads at runtime
Adds php_ini configuration in Caddyfile
2025-02-19 20:39:33 +01:00