Есть ли способ получить доступ ко всем слушателям fs.watch для процесса?

Я пытаюсь реализовать платформу модульного тестирования, автоматизированный модуль запуска модульных тестов таким образом, чтобы тесты можно было отлаживать, и этот способ включает в себя очистку как можно большего количества ресурсов между каждым запуском теста, например, require.cache.

Проблема, с которой я столкнулся, заключается в том, что экземпляры FSWatcher, если они созданы модульными тестами и связанным с ними кодом, дублируются для каждого запуска теста, создавая очевидную утечку памяти и печатая большие красные предупреждения в консоли. Есть ли способ найти их внутри процесса, чтобы закрыть их?


person Bijou Trouvaille    schedule 28.05.2012    source источник


Ответы (1)


http://nodemanual.org/latest/nodejs_ref_guide/fs.FSWatcher.html

Вы можете вызвать close() для FSWatcher.

person srquinn    schedule 30.05.2012
comment
спасибо, но я не об этом спрашивал. Проблема заключается в том, чтобы найти все экземпляры FSWatcher, чтобы я мог их закрыть. - person Bijou Trouvaille; 30.05.2012
comment
Я думаю, что публикация некоторого кода поможет ответить на этот вопрос... утечка памяти обычно является признаком недостатка в системе. - person srquinn; 31.05.2012
comment
jibsales, я имею дело не с каким-то конкретным кодом, а с любым произвольным кодом, который может поместить часы в файловую систему. Мне нужно найти и удалить его. - person Bijou Trouvaille; 31.05.2012
comment
Я обновил вопрос, в надежде прояснить его. Мои извинения, если это было слишком расплывчато до. - person Bijou Trouvaille; 31.05.2012
comment
вы не сохраняете ссылку на средство просмотра файлов при его создании? - person srquinn; 01.06.2012
comment
Мой код не создает наблюдателей за файлами. Мой код — это платформа модульного тестирования. Модульные тесты, запускаемые ею, не являются моим кодом, и они могут создавать или не создавать экземпляры наблюдателя. Все, что я знаю, это то, что если они это сделают, мне нужен способ найти их каким-то образом, имея доступ только к глобальной области действия процесса, поэтому global.process, global.require и т. д. - person Bijou Trouvaille; 01.06.2012