[PATCH] D58418: [clang][DirectoryWatcher] Upstream DirectoryWatcher

Jan Korous via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 22 12:51:58 PDT 2019


jkorous marked 9 inline comments as done.
jkorous added a comment.

Thanks for taking a look Kadir!
After yesterday's discussion with Dmitri I removed all those busy waits. Seems like the code is not much more complex now. I am going to update the diff and off to fixing the tests.



================
Comment at: clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp:211
+  // ... inotify-originated events processing ever after.
+  while (true) {
+    bool GotEvent = false;
----------------
kadircet wrote:
> kadircet wrote:
> > `while (!Stop)` ?
> why the loop always tries to empty the queue? what would be broken if we simply stopped if `Stop` was set?
> 
> Also if that is important current implementation doesn't seem to be achiving that, since some events can be pushed to the queue after while loop exits.
I changed the design - stopping condition for this loop is now finding `WatcherGotInvalidated` in the queue itself.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58418/new/

https://reviews.llvm.org/D58418





More information about the cfe-commits mailing list