Skip to content

Commit 3d30d56

Browse files
committed
Delay valve
1 parent 4ed39cd commit 3d30d56

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

lib/Extension/Core/Stage/Sampler/CurlSampler.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use PhpBench\Pipeline\Core\Stage;
66
use Generator;
77
use PhpBench\Pipeline\Core\Schema;
8+
use PhpBench\Pipeline\Core\Signal;
89

910
class CurlSampler implements Stage
1011
{
@@ -31,7 +32,7 @@ public function __invoke(): Generator
3132
list($config, $data) = yield $info;
3233
}
3334

34-
usleep(10000);
35+
yield Signal::continue();
3536
}
3637

3738
curl_multi_close($this->multiHandle);
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace PhpBench\Pipeline\Tests\Unit\Extension\Core\Stage\Valve;
4+
5+
use PhpBench\Pipeline\Tests\Unit\Extension\Core\CoreTestCase;
6+
7+
class DelayValveTest extends CoreTestCase
8+
{
9+
public function testDelaysExecution()
10+
{
11+
$start = microtime(true);
12+
$this->pipeline()
13+
->stage('valve/delay', [ 'time' => 10000 ])
14+
->generator()
15+
->current();
16+
17+
$end = microtime(true);
18+
19+
$this->assertGreaterThan(10000, ($end - $start) * 1E6);
20+
}
21+
}

0 commit comments

Comments
 (0)