MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / endDatasetPass

Method endDatasetPass

app/src/DataModel/FrameBuilder.cpp:1418–1439  ·  view source on GitHub ↗

* @brief Releases the dataset-pass scaffolding: unpins engine storage, disarms the watchdog and * drains any project mutation a transform queued while hot pointers were live. */

Source from the content-addressed store, hash-verified

1416 * drains any project mutation a transform queued while hot pointers were live.
1417 */
1418void DataModel::FrameBuilder::endDatasetPass(bool armedJsWatchdog)
1419{
1420 Q_ASSERT(m_compileGuard > 0);
1421
1422 --m_compileGuard;
1423
1424 if (armedJsWatchdog) [[unlikely]] {
1425 m_jsEngineForSource->jsWatchdog->disarm();
1426 if (m_jsTransformTimedOut)
1427 NotificationCenter::instance().postWarning(
1428 QStringLiteral("FrameBuilder"),
1429 tr("JavaScript transform exceeded budget"),
1430 tr("A dataset transform took longer than %1 ms; remaining datasets in the frame fell "
1431 "back to raw values until the next frame. Profile or simplify the transform code.")
1432 .arg(kTransformWatchdogMs));
1433 }
1434
1435 if (m_compileGuard == 0 && m_compilePending) [[unlikely]] {
1436 m_compilePending = false;
1437 QMetaObject::invokeMethod(this, [this] { compileTransforms(); }, Qt::QueuedConnection);
1438 }
1439}
1440
1441/**
1442 * @brief Recomputes whether per-dataset values must be mirrored into the table store: only

Callers

nothing calls this directly

Calls 2

disarmMethod · 0.80
postWarningMethod · 0.80

Tested by

no test coverage detected