This commit is contained in:
Markus 2019-08-15 14:37:16 +02:00
parent 3f06640821
commit 2cafff45a1
2 changed files with 35 additions and 4 deletions

View File

@ -53,7 +53,7 @@ struct Settings {
proxy_port = 9050,
default_maxDirs = 20;
char pathSymbol = '/';
unsigned maxThreads = 2;
unsigned maxThreads = 4;

};


View File

@ -218,6 +218,7 @@ int ProgramManager::defaultModus(Settings *settings)
}


//Wenn nex Thread noch in den Vector passt(weniger Threads als Max), dann Starte neuen mit data aus dem Vector...
if(nextThread < threadList.size()) {
threadList[nextThread]->setData(staffel, folge);
if(pthread_create(&threadList[nextThread]->thread, nullptr, threadFunction, reinterpret_cast<void*>(threadList[nextThread])) != 0 ) {
@ -225,7 +226,7 @@ int ProgramManager::defaultModus(Settings *settings)
return 48;
}
nextThread++;
} else {
} else { // Sonnst warte bis alle Fertig sind und restarte die Folge
for( auto &e : threadList) {
pthread_join(e->thread, nullptr);
if(e->exitState != 0) {
@ -260,11 +261,29 @@ int ProgramManager::defaultModus(Settings *settings)



if(folge == settings->stopEpisode && settings->stopSeason < 1) // stoppe wenn stopfolge gleich der folge ist und stopstaffel nicht gesetzt wurde.
if(folge == settings->stopEpisode && settings->stopSeason < 1) { // stoppe wenn stopfolge gleich der folge ist und stopstaffel nicht gesetzt wurde.
for( auto &e : threadList) {
pthread_join(e->thread, nullptr);
if(e->exitState != 0) {
std::cout << "Error: Thread gab error zurück." << std::endl;
return e->exitState;
}
std::cout << "NachThread: " << e->returnValue << std::endl;
}
return 0;
else if ( folge == settings->stopEpisode && staffel == settings->stopSeason) // stoppe wenn stopfolge = folge && stopstaffel == staffel
}
else if ( folge == settings->stopEpisode && staffel == settings->stopSeason) { // stoppe wenn stopfolge = folge && stopstaffel == staffel
for( auto &e : threadList) {
pthread_join(e->thread, nullptr);
if(e->exitState != 0) {
std::cout << "Error: Thread gab error zurück." << std::endl;
return e->exitState;
}
std::cout << "NachThread: " << e->returnValue << std::endl;
}
return 0;
}
}
//Setzte Startepisode zurück für nächste Staffel
settings->startEpisode = 1;

@ -275,6 +294,18 @@ int ProgramManager::defaultModus(Settings *settings)
}
}


for( auto &e : threadList) {
pthread_join(e->thread, nullptr);
if(e->exitState != 0) {
std::cout << "Error: Thread gab error zurück." << std::endl;
return e->exitState;
}
std::cout << "NachThread: " << e->returnValue << std::endl;
}



std::cout << " > Fertig" << std::endl;
return 0;
}