MCPcopy Create free account
hub / github.com/audeering/opensmile / componentOnEmptyTickloop

Method componentOnEmptyTickloop

src/core/componentManager.cpp:1181–1204  ·  view source on GitHub ↗

Notifies all components of an empty tick loop by calling notifyEmptyTickloop. Returns the number of components that reported that they are waiting for additional data. If at least one component is waiting, the tick loop should continue and EOI should not be set.

Source from the content-addressed store, hash-verified

1179// data. If at least one component is waiting, the tick loop should continue and
1180// EOI should not be set.
1181long cComponentManager::componentOnEmptyTickloop(long long threadId, long long tickNr)
1182{
1183 long nWaiting = 0;
1184 std::string stat;
1185 for (long i = 0; i <= lastComponent; i++) {
1186 if (component[i] != NULL) {
1187 if (((threadId == -1) || (threadId == componentThreadId[i]))
1188 && (componentThreadId[i] != -2)) {
1189 bool isWaiting = component[i]->notifyEmptyTickloop();
1190 if (isWaiting) {
1191 nWaiting++;
1192 if (execDebug) { // show summary of components executed during this tick
1193 stat += std::string(component[i]->getInstName()) + " ";
1194 }
1195 }
1196 }
1197 }
1198 }
1199 if (execDebug) { // show summary of components executed during this tick
1200 SMILE_PRINT("NOTIFY EMPTY tick #%i thread %i, (eoi=%i) waiting (%i): %s\n", (int)tickNr,
1201 (int)threadId, EOI, nWaiting, stat.c_str());
1202 }
1203 return nWaiting;
1204}
1205
1206void cComponentManager::printExecDebug(int threadId) {
1207 eTickResult tickResults[6] = {

Callers

nothing calls this directly

Calls 3

c_strMethod · 0.80
notifyEmptyTickloopMethod · 0.45
getInstNameMethod · 0.45

Tested by

no test coverage detected