'use strict'; const common = require('../common'); const fs = require('fs'); const assert = require('assert'); const uncalledListener = common.mustNotCall(); const uncalledListener2 = common.mustNotCall(); const watcher = fs.watchFile(__filename, uncalledListener); watcher.unref(); watcher.unref(); watcher.ref(); watcher.unref(); watcher.ref(); watcher.ref(); watcher.unref(); fs.unwatchFile(__filename, uncalledListener); // Watch the file with two different listeners. fs.watchFile(__filename, uncalledListener); const watcher2 = fs.watchFile(__filename, uncalledListener2); setTimeout( common.mustCall(() => { fs.unwatchFile(__filename, common.mustNotCall()); assert.strictEqual(watcher2.listenerCount('change'), 2); fs.unwatchFile(__filename, uncalledListener); assert.strictEqual(watcher2.listenerCount('change'), 1); watcher2.unref(); }), common.platformTimeout(100) );