HomePhabricator

DirectoryWatcher: add an implementation for Windows

Authored by compnerd on Sep 30 2020, 10:42 PM.

Description

DirectoryWatcher: add an implementation for Windows

This implements the directory watcher on Windows. It does the most
naive thing for simplicity. ReadDirectoryChangesW is used to monitor
the changes. However, in order to support interruption, we must use
overlapped IO, which allows us to use the blocking, synchronous
mechanism. We create a thread to post the notification to the consumer
to allow the monitoring to continue. The two threads communicate via a
locked queue.

Differential Revision: https://reviews.llvm.org/D88666
Reviewed By: Adrian McCarthy