See the discussion. The decision was just to keep re-trying for a
bit, since the lock preventing us from removing the old file seems
to clear after a bit.

(cherry picked from commit d96a9aa37f)
This commit is contained in:
Richard Kimberly Heck 2019-07-07 13:13:52 -04:00
parent 53597584e6
commit ad4215e462
2 changed files with 20 additions and 1 deletions

View File

@ -30,6 +30,10 @@
#include <QTemporaryFile>
#include <QTime>
#ifdef _WIN32
#include <QThread>
#endif
#include <boost/crc.hpp>
#include <algorithm>
@ -256,9 +260,22 @@ bool FileName::renameTo(FileName const & name) const
bool FileName::moveTo(FileName const & name) const
{
LYXERR(Debug::FILES, "Moving " << *this << " to " << name);
#ifdef _WIN32
// there's a locking problem on Windows sometimes, so
// we will keep trying for five seconds, in the hope
// that clears.
bool removed = QFile::remove(name.d->fi.absoluteFilePath());
int tries = 1;
while (!removed && tries < 6) {
QThread::sleep(1);
removed = QFile::remove(name.d->fi.absoluteFilePath());
tries++;
}
#else
QFile::remove(name.d->fi.absoluteFilePath());
#endif
bool success = QFile::rename(d->fi.absoluteFilePath(),
bool const success = QFile::rename(d->fi.absoluteFilePath(),
name.d->fi.absoluteFilePath());
if (!success)
LYXERR0("Could not move file " << *this << " to " << name);

View File

@ -63,6 +63,8 @@ Avoid using text mode for unicode symbols representable in math mode (bug 9616).
- Fix nomenclature processing with LuaTeX (bug 11571).
- Fix problem on Windows with saving files in Dropbox folders (bug 10091).
* USER INTERFACE