File tree Expand file tree Collapse file tree 1 file changed +26
-12
lines changed
Expand file tree Collapse file tree 1 file changed +26
-12
lines changed Original file line number Diff line number Diff line change @@ -99,6 +99,7 @@ class DocumentationBrowserUpdateThread : public Thread
9999
100100 ~DocumentationBrowserUpdateThread ()
101101 {
102+
102103 instance = nullptr ;
103104 stopThread (-1 );
104105 }
@@ -202,20 +203,33 @@ class DocumentationBrowserUpdateThread : public Thread
202203 }
203204 }
204205
205- void run () override
206- {
207- try
208- {
209- fileTreeLock.enter ();
210- fileTree = generateDirectoryValueTree (File (SettingsFile::getInstance ()->getProperty <String>(" browser_path" )));
211- fileTreeLock.exit ();
212- sendChangeMessage ();
213- }
214- catch (...)
206+ void run () override
215207 {
216- std::cerr << " Failed to update documentation browser" << std::endl;
208+ try
209+ {
210+ int const maxRetries = 50 ;
211+ int retries = 0 ;
212+
213+ while (retries < maxRetries) {
214+ if (threadShouldExit ())
215+ break ;
216+ if (fileTreeLock.tryEnter ()) {
217+ fileTree = generateDirectoryValueTree (File (SettingsFile::getInstance ()->getProperty <String>(" browser_path" )));
218+ fileTreeLock.exit ();
219+ break ;
220+ }
221+ retries++;
222+ Time::waitForMillisecondCounter (Time::getMillisecondCounter () + 100 );
223+ }
224+
225+
226+ sendChangeMessage ();
227+ }
228+ catch (...)
229+ {
230+ std::cerr << " Failed to update documentation browser" << std::endl;
231+ }
217232 }
218- }
219233
220234 void filesystemChanged () override
221235 {
You can’t perform that action at this time.
0 commit comments