merge from 3.0.1 parallalize dr

This commit is contained in:
maliakal_d 2018-02-07 15:48:39 +01:00
commit a654febb7e

View File

@ -4266,25 +4266,42 @@ int multiSlsDetector::setCounterBit(int i){
int multiSlsDetector::setDynamicRange(int p) {
int ret=-100, ret1;
int ret=-100;
thisMultiDetector->dataBytes=0;
thisMultiDetector->dataBytesInclGapPixels=0;
thisMultiDetector->numberOfChannels=0;
if(!threadpool){
cout << "Error in creating threadpool. Exiting" << endl;
return -1;
}else{
//return storage values
int* iret[thisMultiDetector->numberOfDetectors];
for(int idet=0; idet<thisMultiDetector->numberOfDetectors; ++idet){
if(detectors[idet]){
ret1=detectors[idet]->setDynamicRange(p);
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
iret[idet]= new int(-1);
Task* task = new Task(new func1_t<int,int>(&slsDetector::setDynamicRange,
detectors[idet],p,iret[idet]));
threadpool->add_task(task);
}
}
threadpool->startExecuting();
threadpool->wait_for_tasks_to_complete();
for(int idet=0; idet<thisMultiDetector->numberOfDetectors; ++idet){
if(detectors[idet]){
if(iret[idet] != NULL){
thisMultiDetector->dataBytes+=detectors[idet]->getDataBytes();
thisMultiDetector->dataBytesInclGapPixels+=detectors[idet]->getDataBytesInclGapPixels();
// cout << "db " << idet << " " << detectors[idet]->getDataBytes() << endl;
thisMultiDetector->numberOfChannels+=detectors[idet]->getTotalNumberOfChannels();
if (ret==-100)
ret=ret1;
else if (ret!=ret1)
ret=*iret[idet];
else if (ret!=*iret[idet])
ret=-1;
delete iret[idet];
}else ret=-1;
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
}
}
}
@ -4302,9 +4319,10 @@ int multiSlsDetector::setDynamicRange(int p) {
updateOffsets();
}
return ret;
}
int multiSlsDetector::getMaxMods() {