/** in_progress_ stores all forked processes so that we can proceed
* thereafter.
- The map uses the conversion commands as its identifiers.
*/
InProgressProcesses in_progress_;
/// We don't own this
static lyx::Converter const * pconverter_;
- signals2::scoped_connection connection_;
+ Trackable trackable_;
};
if (wait) {
ForkedCall call(buffer_.filePath(), buffer_.layoutPos());
int ret = call.startScript(ForkedProcess::Wait, command);
- static atomic_int fake((2^20) + 1);
+ // PID_MAX_LIMIT is 2^22 so we start one after that
+ static atomic_int fake((1 << 22) + 1);
int pid = fake++;
inprogress.pid = pid;
inprogress.command = command;
// Initiate the conversion from LaTeX to bitmap images files.
ForkedCall::sigPtr convert_ptr = make_shared<ForkedCall::sig>();
- // This is a scoped connection
- connection_ = convert_ptr->connect([this](pid_t pid, int retval){
- finishedGenerating(pid, retval);
- });
+ convert_ptr->connect(ForkedProcess::slot([this](pid_t pid, int retval){
+ finishedGenerating(pid, retval);
+ }).track_foreign(trackable_.p()));
ForkedCall call(buffer_.filePath());
int ret = call.startScript(command, convert_ptr);