diff --git a/src/Composer/Command/CreateProjectCommand.php b/src/Composer/Command/CreateProjectCommand.php index 4f58a4a77..16960ac64 100644 --- a/src/Composer/Command/CreateProjectCommand.php +++ b/src/Composer/Command/CreateProjectCommand.php @@ -319,13 +319,16 @@ EOT } // handler Ctrl+C for unix-like systems - if (function_exists('pcntl_signal')) { - declare(ticks=100); - pcntl_signal(SIGINT, function () use ($directory) { - $fs = new Filesystem(); - $fs->removeDirectory($directory); - exit(130); - }); + if (function_exists('pcntl_async_signals')) { + @mkdir($directory, 0777, true); + if ($realDir = realpath($directory)) { + pcntl_async_signals(true); + pcntl_signal(SIGINT, function () use ($realDir) { + $fs = new Filesystem(); + $fs->removeDirectory($realDir); + exit(130); + }); + } } $io->writeError('Installing ' . $package->getName() . ' (' . $package->getFullPrettyVersion(false) . ')');