<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/clang/lib/DirectoryWatcher/default, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2019-08-06T05:12:23+00:00</updated>
<entry>
<title>[clang][DirectoryWatcher] Adding llvm::Expected error handling to create.</title>
<updated>2019-08-06T05:12:23+00:00</updated>
<author>
<name>Puyan Lotfi</name>
<email>puyan@puyan.org</email>
</author>
<published>2019-08-06T05:12:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ef74924fc75b32511057b06bc28c08f6419b71ba'/>
<id>urn:sha1:ef74924fc75b32511057b06bc28c08f6419b71ba</id>
<content type='text'>
Prior to this patch Unix style errno error reporting from the inotify layer was
used by DirectoryWatcher::create to simply return a nullptr on error. This
would generally be ok, except that in LLVM we have much more robust error
reporting through the facilities of llvm::Expected.

The other critical thing I stumbled across was that the unit tests for
DirectoryWatcher were not failing abruptly when inotify_init() was reporting an
error, but would continue with the testing and eventually hit a deadlock in a
pathological machine state (ie in the unit test, the return nullptr on ::create
was ignored).

Generally this pathological state never happens on any build bot, so it is
totally understandable that it was overlooked, but on a Linux desktop running
a dubious desktop environment (which I will not name) there is a chance that
said desktop environment could use up enough inotify instances to exceed the
user's limit. These are the conditions that led me to hit the deadlock I am
addressing in this patch with more robust error handling.

With the new llvm::Expected error handling when your system runs out of inotify
instances for your user, the unit test will be forced to handle the error or
crash and report the issue to the user instead of weirdly deadlocking on a
condition variable wait.

Differential Revision: https://reviews.llvm.org/D65704

llvm-svn: 367979
</content>
</entry>
<entry>
<title>Reland [clang] DirectoryWatcher</title>
<updated>2019-07-12T20:34:10+00:00</updated>
<author>
<name>Jan Korous</name>
<email>jkorous@apple.com</email>
</author>
<published>2019-07-12T20:34:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=77dd8a79286d2fff94c765f787d7f7debb2a10c4'/>
<id>urn:sha1:77dd8a79286d2fff94c765f787d7f7debb2a10c4</id>
<content type='text'>
This reverts commit f561227d133224d2d6a5a016abe4be051fa75501.

- DirectoryWatcher
- Fix the build for platforms that don't have DW implementated.
- Fix the threading dependencies (thanks to compnerd).

llvm-svn: 365954
</content>
</entry>
<entry>
<title>Revert "Reland [clang] DirectoryWatcher"</title>
<updated>2019-07-12T19:54:36+00:00</updated>
<author>
<name>Jan Korous</name>
<email>jkorous@apple.com</email>
</author>
<published>2019-07-12T19:54:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f561227d133224d2d6a5a016abe4be051fa75501'/>
<id>urn:sha1:f561227d133224d2d6a5a016abe4be051fa75501</id>
<content type='text'>
This reverts commit fdcb7f47e783933e0af8a5fae91132269a208268.

llvm-svn: 365948
</content>
</entry>
<entry>
<title>Reland [clang] DirectoryWatcher</title>
<updated>2019-07-12T19:47:55+00:00</updated>
<author>
<name>Jan Korous</name>
<email>jkorous@apple.com</email>
</author>
<published>2019-07-12T19:47:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=fdcb7f47e783933e0af8a5fae91132269a208268'/>
<id>urn:sha1:fdcb7f47e783933e0af8a5fae91132269a208268</id>
<content type='text'>
This reverts commit abce8c457dd3de6b156756e547cc0eefb7653c79.

+ Fix the build for platforms that don't have DW implementated.

llvm-svn: 365947
</content>
</entry>
</feed>
