mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Make preview filename generation threadsafe
Threadsafety is ensured by the atomic file name generation in TempFile.
This commit is contained in:
parent
cf89851374
commit
79e79ed548
@ -38,6 +38,7 @@
|
||||
#include "support/lstrings.h"
|
||||
|
||||
#include "support/bind.h"
|
||||
#include "support/TempFile.h"
|
||||
|
||||
#include <sstream>
|
||||
#include <fstream>
|
||||
@ -59,12 +60,11 @@ typedef list<string> PendingSnippets;
|
||||
typedef vector<SnippetPair> BitmapFile;
|
||||
|
||||
|
||||
string const unique_filename(string const & bufferpath)
|
||||
FileName const unique_tex_filename(FileName const & bufferpath)
|
||||
{
|
||||
// FIXME THREAD
|
||||
static int theCounter = 0;
|
||||
string const filename = lyx::convert<string>(theCounter++) + "lyxpreview";
|
||||
return addName(bufferpath, filename);
|
||||
TempFile tempfile(bufferpath, "lyxpreviewXXXXXX.tex");
|
||||
tempfile.setAutoRemove(false);
|
||||
return tempfile.name();
|
||||
}
|
||||
|
||||
|
||||
@ -531,9 +531,10 @@ void PreviewLoader::Impl::startLoading(bool wait)
|
||||
LYXERR(Debug::GRAPHICS, "PreviewLoader::startLoading()");
|
||||
|
||||
// As used by the LaTeX file and by the resulting image files
|
||||
string const directory = buffer_.temppath();
|
||||
FileName const directory(buffer_.temppath());
|
||||
|
||||
string const filename_base = unique_filename(directory);
|
||||
FileName const latexfile = unique_tex_filename(directory);
|
||||
string const filename_base = removeExtension(latexfile.absFileName());
|
||||
|
||||
// Create an InProgress instance to place in the map of all
|
||||
// such processes if it starts correctly.
|
||||
@ -543,8 +544,6 @@ void PreviewLoader::Impl::startLoading(bool wait)
|
||||
pending_.clear();
|
||||
|
||||
// Output the LaTeX file.
|
||||
FileName const latexfile(filename_base + ".tex");
|
||||
|
||||
// we use the encoding of the buffer
|
||||
Encoding const & enc = buffer_.params().encoding();
|
||||
ofdocstream of;
|
||||
|
Loading…
Reference in New Issue
Block a user