X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=prcseqscommand.cpp;h=ee15bed0a2362a9f9921cd45789ebb83384c0ea5;hb=cac38e9e251998fa0b825d00189534534948d226;hp=a1eae4687c4d49b2ce8e0f90895a36a994aec689;hpb=ac03f1f6c27b5bfdf2cfb6d45c3667c3e0281f51;p=mothur.git diff --git a/prcseqscommand.cpp b/prcseqscommand.cpp index a1eae46..ee15bed 100644 --- a/prcseqscommand.cpp +++ b/prcseqscommand.cpp @@ -436,18 +436,18 @@ int PcrSeqsCommand::createProcesses(string filename, string goodFileName, string //loop through and create all the processes you want while (process != processors) { - int pid = fork(); + pid_t pid = fork(); if (pid > 0) { processIDS.push_back(pid); //create map from line number to pid so you can append files in correct order later process++; }else if (pid == 0){ - string locationsFile = toString(getpid()) + ".temp"; - num = driverPcr(filename, goodFileName + toString(getpid()) + ".temp", badFileName + toString(getpid()) + ".temp", locationsFile, badSeqNames, lines[process], pstart, adjustNeeded); + string locationsFile = m->mothurGetpid(process) + ".temp"; + num = driverPcr(filename, goodFileName + m->mothurGetpid(process) + ".temp", badFileName + m->mothurGetpid(process) + ".temp", locationsFile, badSeqNames, lines[process], pstart, adjustNeeded); //pass numSeqs to parent ofstream out; - string tempFile = filename + toString(getpid()) + ".num.temp"; + string tempFile = filename + m->mothurGetpid(process) + ".num.temp"; m->openOutputFile(tempFile, out); out << pstart << '\t' << adjustNeeded << endl; out << num << '\t' << badSeqNames.size() << endl; @@ -464,7 +464,7 @@ int PcrSeqsCommand::createProcesses(string filename, string goodFileName, string } } - string locationsFile = toString(getpid()) + ".temp"; + string locationsFile = m->mothurGetpid(process) + ".temp"; num = driverPcr(filename, goodFileName, badFileName, locationsFile, badSeqNames, lines[0], pstart, adjustNeeded); //force parent to wait until all the processes are done @@ -575,7 +575,7 @@ int PcrSeqsCommand::createProcesses(string filename, string goodFileName, string - if (fileAligned) { + if (fileAligned && adjustNeeded) { //find pend - pend is the biggest ending value, but we must account for when we adjust the start. That adjustment may make the "new" end larger then the largest end. So lets find out what that "new" end will be. ifstream inLocations; m->openInputFile(locationsFile, inLocations); @@ -608,7 +608,7 @@ int PcrSeqsCommand::createProcesses(string filename, string goodFileName, string inLocations.close(); adjustDots(goodFileName, locationsFile, pstart, pend); - } + }else { m->mothurRemove(locationsFile); } return num;