Skip to content

Commit 39d67b3

Browse files
committed
Run tests on PHP 8.4 and update test environment
1 parent da2e173 commit 39d67b3

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ on:
77
jobs:
88
PHPUnit:
99
name: PHPUnit (PHP ${{ matrix.php }})
10-
runs-on: ubuntu-22.04
10+
runs-on: ubuntu-24.04
1111
strategy:
1212
matrix:
1313
php:
14+
- 8.4
1415
- 8.3
1516
- 8.2
1617
- 8.1
@@ -38,7 +39,7 @@ jobs:
3839

3940
PHPUnit-hhvm:
4041
name: PHPUnit (HHVM)
41-
runs-on: ubuntu-22.04
42+
runs-on: ubuntu-24.04
4243
continue-on-error: true
4344
steps:
4445
- uses: actions/checkout@v4

src/Client.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Client
2828
* @param ?LoopInterface $loop
2929
* @param ?MulticastFactory $multicast
3030
*/
31-
public function __construct(LoopInterface $loop = null, MulticastFactory $multicast = null)
31+
public function __construct(?LoopInterface $loop = null, ?MulticastFactory $multicast = null)
3232
{
3333
$this->loop = $loop ?: Loop::get();
3434
$this->multicast = $multicast ?: new MulticastFactory($this->loop);
@@ -46,13 +46,18 @@ public function search($searchTarget = 'ssdp:all', $mx = 2)
4646
$socket = $this->multicast->createSender();
4747
// TODO: The TTL for the IP packet SHOULD default to 2 and SHOULD be configurable.
4848

49-
$timer = $this->loop->addTimer($mx, function() use ($socket, &$deferred) {
49+
// Initialize deferred first
50+
$deferred = new Deferred();
51+
52+
// Then use it in the timer
53+
$timer = $this->loop->addTimer($mx, function() use ($socket, $deferred) {
5054
$deferred->resolve();
5155
$socket->close();
5256
});
5357

58+
// Redefine the deferred with the proper canceller now that timer exists
5459
$loop = $this->loop;
55-
$deferred = new Deferred(function () use ($socket, &$timer, $loop) {
60+
$deferred = new Deferred(function () use ($socket, $timer, $loop) {
5661
// canceling resulting promise cancels timer and closes socket
5762
$loop->cancelTimer($timer);
5863
$socket->close();

0 commit comments

Comments
 (0)