I'm not sure I understand you here. Do you say, at some places we should
copy the Converters:
Converters converters = theConverters();

yes. and some place == buffer export as it was in the original patch.
does it make sense?

In Buffer::doExport I've introduced the copying of the Converters,
this function is called by our previw/export threads:

        LyX.exe!lyx::Buffer::doExport
        LyX.exe!lyx::Buffer::preview(
        LyX.exe!std::tr1::_Pmf_caller3<
        LyX.exe!std::tr1::_Pmf_caller3<
        LyX.exe!std::tr1::_Callable_pmf<
        LyX.exe!std::tr1::_Bind3<
        LyX.exe!std::tr1::_Bind_base<
        LyX.exe!lyx::frontend::GuiView::GuiViewPrivate::runAndDestroy<
        LyX.exe!lyx::frontend::GuiView::GuiViewPrivate::previewAndDestroy(
        LyX.exe!QtConcurrent::StoredFunctorCall3<
        LyX.exe!QtConcurrent::RunFunctionTask
        QtCored4.dll!QThreadPoolThread::run(
        QtCored4.dll!QThreadPrivate::start(
        msvcr100d.dll!_callthreadstartex()
        msvcr100d.dll!_threadstartex(void * ptd)


All the other places with theConverter are not touched by these threads so
the problem of synchronizing Graph calls is solved.

There could be other functions in doExport which are also called by other
threads but until now no problems where reported.

Peter

Reply via email to