FileSystemWatcher::close

(PHP 8.6+, True Async 1.0)

public FileSystemWatcher::close(): void

停止文件系统监视。通过 foreach 进行的迭代将在处理完缓冲区中剩余的事件后结束。

幂等操作 — 重复调用是安全的。

参数

无参数。

示例

示例 #1 收到目标事件后关闭

<?php
use Async\FileSystemWatcher;

$watcher = new FileSystemWatcher('/tmp/uploads');

foreach ($watcher as $event) {
    if ($event->filename === 'ready.flag') {
        $watcher->close();
    }
}

echo "Marker file detected\n";
?>

示例 #2 从另一个协程关闭

<?php
use Async\FileSystemWatcher;
use function Async\spawn;
use function Async\delay;

$watcher = new FileSystemWatcher('/tmp/data');

spawn(function() use ($watcher) {
    delay(10_000);
    $watcher->close();
});

foreach ($watcher as $event) {
    processEvent($event);
}

echo "Watching ended by timeout\n";
?>

参见