File tree 3 files changed +46
-0
lines changed
src/Symfony/Component/Process 3 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -427,6 +427,7 @@ public function wait(callable $callback = null)
427
427
} while ($ running );
428
428
429
429
while ($ this ->isRunning ()) {
430
+ $ this ->checkTimeout ();
430
431
usleep (1000 );
431
432
}
432
433
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Symfony \Component \Process \Tests ;
13
+
14
+ use Symfony \Component \Process \Exception \ProcessTimedOutException ;
15
+ use Symfony \Component \Process \Process ;
16
+
17
+ require \dirname (__DIR__ ).'/vendor/autoload.php ' ;
18
+
19
+ list ('e ' => $ php ) = getopt ('e: ' ) + ['e ' => 'php ' ];
20
+
21
+ try {
22
+ $ process = new Process ("exec $ php -r \"echo 'ready'; trigger_error('error', E_USER_ERROR); \"" );
23
+ $ process ->start ();
24
+ $ process ->setTimeout (0.5 );
25
+ while (false === strpos ($ process ->getOutput (), 'ready ' )) {
26
+ usleep (1000 );
27
+ }
28
+ $ process ->signal (SIGSTOP );
29
+ $ process ->wait ();
30
+
31
+ return $ process ->getExitCode ();
32
+ } catch (ProcessTimedOutException $ t ) {
33
+ echo $ t ->getMessage ().PHP_EOL ;
34
+
35
+ return 1 ;
36
+ }
Original file line number Diff line number Diff line change @@ -1551,6 +1551,15 @@ public function testEnvArgument()
1551
1551
$ this ->assertSame ($ env , $ p ->getEnv ());
1552
1552
}
1553
1553
1554
+ public function testWaitStoppedDeadProcess ()
1555
+ {
1556
+ $ process = $ this ->getProcess (self ::$ phpBin .' ' .__DIR__ .'/ErrorProcessInitiator.php -e ' .self ::$ phpBin );
1557
+ $ process ->start ();
1558
+ $ process ->setTimeout (2 );
1559
+ $ process ->wait ();
1560
+ $ this ->assertFalse ($ process ->isRunning ());
1561
+ }
1562
+
1554
1563
/**
1555
1564
* @param string $commandline
1556
1565
* @param string|null $cwd
You can’t perform that action at this time.
0 commit comments