Commit Graph

5 Commits

Author SHA1 Message Date
Enrico Forestieri
cbad159ac2 Make sure a temporary file is always created in the global temporary dir. 2015-03-13 00:31:08 +01:00
Georg Baum
ae15b59734 Don't double delete by making TempFile noncopyable
The compiler generated copy constructor and assignment operator are wrong.
This could easily be fixed by implementing them manually, but a) they are
not needed, and b) the semantics would be unclear (should the copy point
to a new temp file or not?), so it is better to forbid them.
2014-06-09 13:03:32 +02:00
Georg Baum
bf782ee02a Improve file saving strategy
- The TempFile class guarantees to generate a file name, we are not limited to
  100 tries of a predictable scheme anymore, which could break if LyX
  frequently crashes.
- The temp file name generation has no race condition against another LyX
  instance in the same directory anymore.
- Symlinks survive saving again (regression of 10364082c8).
2014-06-09 11:08:24 +02:00
Georg Baum
47721216f0 Fix typo 2014-06-09 10:26:39 +02:00
Georg Baum
db0ba3a3c6 Add class for threadsafe temp file handling
FileName::tempName() is not thread safe, since the QTemporaryFile object is
immediately deleted after creating it. Therefore, another thread could create
the same temporary file in the time span before the user of FileName::tempName()
recreates it. This is not as theoretical as it may look: I observed that
repeated creation and deletion of QTemporaryFile objects always use the same
name.
This problem is solved by the new class TempFile which should be used like
QTemporaryFile itself.
2013-04-14 18:22:42 +02:00