Skip to content

Commit b5e10eb

Browse files
committed
Remove event listeners once closed
1 parent ddf1984 commit b5e10eb

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/TransformStream.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public function close()
5858
$this->writable = false;
5959

6060
$this->emit('close');
61+
$this->removeAllListeners();
6162
}
6263

6364
public function isReadable()

tests/TransformStreamTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,18 @@ public function testDoesNotEmitIfAlreadyEnded(TransformStream $stream)
5353
$stream->close();
5454
}
5555

56+
public function testCloseRemovesListeners()
57+
{
58+
$stream = new TransformStream();
59+
$this->assertCount(0, $stream->listeners('close'));
60+
61+
$stream->on('close', $this->expectCallableOnce());
62+
$this->assertCount(1, $stream->listeners('close'));
63+
64+
$stream->close();
65+
$this->assertCount(0, $stream->listeners('close'));
66+
}
67+
5668
public function testCloseOnlyEmitsCloses()
5769
{
5870
$stream = new TransformStream();

0 commit comments

Comments
 (0)