#include "GraphicsConverter.h"
#include "converter.h"
+#include "format.h"
#include "debug.h"
#include "support/filetools.h"
#include "support/forkedcall.h"
+#include "support/forkedcallqueue.h"
+#include "support/tostr.h"
#include "support/lyxlib.h"
#include <boost/bind.hpp>
} else {
lyxerr[Debug::GRAPHICS] << "\tConversion script:"
- << "\n--------------------------------------\n"
- << STRCONV(script.str())
- << "\n--------------------------------------\n";
+ << "\n--------------------------------------\n"
+ << STRCONV(script.str())
+ << "\n--------------------------------------\n";
// Output the script to file.
static int counter = 0;
// The command needed to run the conversion process
// We create a dummy command for ease of understanding of the
// list of forked processes.
- // Note that 'sh ' is absolutely essential, or execvp will fail.
+ // Note: 'sh ' is absolutely essential, or execvp will fail.
script_command_ = "sh " + script_file_ + ' ' +
OnlyFilename(from_file) + ' ' + to_format;
}
return;
}
- // Initiate the conversion
- Forkedcall::SignalTypePtr convert_ptr;
- convert_ptr.reset(new Forkedcall::SignalType);
+ Forkedcall::SignalTypePtr
+ ptr = ForkedCallQueue::get().add(script_command_);
- convert_ptr->connect(
- boost::bind(&Impl::converted, this, _1, _2));
+ ptr->connect(boost::bind(&Impl::converted, this, _1, _2));
- Forkedcall call;
- int retval = call.startscript(script_command_, convert_ptr);
- if (retval > 0) {
- // Unable to even start the script, so clean-up the mess!
- converted(0, 1);
- }
}
-
void Converter::Impl::converted(pid_t /* pid */, int retval)
{
if (finished_)