mirror of
https://github.com/dunglas/frankenphp.git
synced 2025-12-24 13:38:11 +08:00
* Decouple workers. * Moves code to separate file. * Cleans up the exponential backoff. * Initial working implementation. * Refactors php threads to take callbacks. * Cleanup. * Cleanup. * Cleanup. * Cleanup. * Adjusts watcher logic. * Adjusts the watcher logic. * Fix opcache_reset race condition. * Fixing merge conflicts and formatting. * Prevents overlapping of TSRM reservation and script execution. * Adjustments as suggested by @dunglas. * Adds error assertions. * Adds comments. * Removes logs and explicitly compares to C.false. * Resets check. * Adds cast for safety. * Fixes waitgroup overflow. * Resolves waitgroup race condition on startup. * Moves worker request logic to worker.go. * Removes defer. * Removes call from go to c. * Fixes merge conflict. * Adds fibers test back in. * Refactors new thread loop approach. * Removes redundant check. * Adds compareAndSwap. * Refactor: removes global waitgroups and uses a 'thread state' abstraction instead. * Removes unnecessary method. * Updates comment. * Removes unnecessary booleans. * test * First state machine steps. * Splits threads. * Minimal working implementation with broken tests. * Fixes tests. * Refactoring. * Fixes merge conflicts. * Formatting * C formatting. * More cleanup. * Allows for clean state transitions. * Adds state tests. * Adds support for thread transitioning. * Fixes the testdata path. * Formatting. * Allows transitioning back to inactive state. * Fixes go linting. * Formatting. * Removes duplication. * Applies suggestions by @dunglas * Removes redundant check. * Locks the handler on restart. * Removes unnecessary log. * Changes Unpin() logic as suggested by @withinboredom * Adds suggestions by @dunglas and resolves TODO. * Makes restarts fully safe. * Will make the initial startup fail even if the watcher is enabled (as is currently the case) * Also adds compareAndSwap to the test. * Adds comment. * Prevents panic on initial watcher startup.
53 lines
2.2 KiB
C
53 lines
2.2 KiB
C
/* This is a generated file, edit the .stub.php file instead.
|
|
* Stub hash: 05ebde17137c559e891362fba6524fad1e0a2dfe */
|
|
|
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_frankenphp_handle_request, 0, 1,
|
|
_IS_BOOL, 0)
|
|
ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
|
|
ZEND_END_ARG_INFO()
|
|
|
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_headers_send, 0, 0, IS_LONG, 0)
|
|
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, status, IS_LONG, 0, "200")
|
|
ZEND_END_ARG_INFO()
|
|
|
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_frankenphp_finish_request, 0, 0,
|
|
_IS_BOOL, 0)
|
|
ZEND_END_ARG_INFO()
|
|
|
|
#define arginfo_fastcgi_finish_request arginfo_frankenphp_finish_request
|
|
|
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_frankenphp_request_headers, 0,
|
|
0, IS_ARRAY, 0)
|
|
ZEND_END_ARG_INFO()
|
|
|
|
#define arginfo_apache_request_headers arginfo_frankenphp_request_headers
|
|
|
|
#define arginfo_getallheaders arginfo_frankenphp_request_headers
|
|
|
|
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_frankenphp_response_headers, 0,
|
|
0, MAY_BE_ARRAY | MAY_BE_BOOL)
|
|
ZEND_END_ARG_INFO()
|
|
|
|
#define arginfo_apache_response_headers arginfo_frankenphp_response_headers
|
|
|
|
ZEND_FUNCTION(frankenphp_handle_request);
|
|
ZEND_FUNCTION(headers_send);
|
|
ZEND_FUNCTION(frankenphp_finish_request);
|
|
ZEND_FUNCTION(frankenphp_request_headers);
|
|
ZEND_FUNCTION(frankenphp_response_headers);
|
|
|
|
// clang-format off
|
|
static const zend_function_entry ext_functions[] = {
|
|
ZEND_FE(frankenphp_handle_request, arginfo_frankenphp_handle_request)
|
|
ZEND_FE(headers_send, arginfo_headers_send)
|
|
ZEND_FE(frankenphp_finish_request, arginfo_frankenphp_finish_request)
|
|
ZEND_FALIAS(fastcgi_finish_request, frankenphp_finish_request, arginfo_fastcgi_finish_request)
|
|
ZEND_FE(frankenphp_request_headers, arginfo_frankenphp_request_headers)
|
|
ZEND_FALIAS(apache_request_headers, frankenphp_request_headers, arginfo_apache_request_headers)
|
|
ZEND_FALIAS(getallheaders, frankenphp_request_headers, arginfo_getallheaders)
|
|
ZEND_FE(frankenphp_response_headers, arginfo_frankenphp_response_headers)
|
|
ZEND_FALIAS(apache_response_headers, frankenphp_response_headers, arginfo_apache_response_headers)
|
|
ZEND_FE_END
|
|
};
|
|
// clang-format on
|