diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f54539..17dfc3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## [Unreleased] +## [1.4.2] - 2020-06-04 + * Fixed: ignore SIGINTs to let the restarted process handle them. + ## [1.4.1] - 2020-03-01 * Fixed: restart fails if an ini file is empty. @@ -57,7 +60,8 @@ * Break: the following class was renamed: - `Composer\XdebugHandler` -> `Composer\XdebugHandler\XdebugHandler` -[Unreleased]: https://github.com/composer/xdebug-handler/compare/1.4.1...HEAD +[Unreleased]: https://github.com/composer/xdebug-handler/compare/1.4.2...HEAD +[1.4.2]: https://github.com/composer/xdebug-handler/compare/1.4.1...1.4.2 [1.4.1]: https://github.com/composer/xdebug-handler/compare/1.4.0...1.4.1 [1.4.0]: https://github.com/composer/xdebug-handler/compare/1.3.3...1.4.0 [1.3.3]: https://github.com/composer/xdebug-handler/compare/1.3.2...1.3.3 diff --git a/README.md b/README.md index 43d38d9..c23b7a0 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ There are a few things to be aware of when running inside a restarted process. * Extensions set on the command-line will not be loaded. * Ini file locations will be reported as per the restart - see [getAllIniFiles()](#getallinifiles). * Php sub-processes may be loaded with Xdebug enabled - see [Process configuration](#process-configuration). +* On Windows `sapi_windows_set_ctrl_handler` handlers will not receive CTRL events. ### Helper methods These static methods provide information from the current process, regardless of whether it has been restarted or not. diff --git a/src/XdebugHandler.php b/src/XdebugHandler.php index e4f1bd0..cd5776c 100644 --- a/src/XdebugHandler.php +++ b/src/XdebugHandler.php @@ -256,7 +256,8 @@ protected function restart($command) */ private function doRestart($command) { - // ignore SIGINTs here so the child process can receive and handle them + // Ignore SIGINTs here so the child process can handle them. To replicate this + // on Windows we would need to use proc_open (PHP 7.4+) rather than passthru. if (function_exists('pcntl_async_signals') && function_exists('pcntl_signal')) { pcntl_async_signals(true); pcntl_signal(SIGINT, SIG_IGN);