// Loosen DB query expectations since the HTTP client is unblocked
$trxProfiler = Profiler::instance()->getTransactionProfiler();
- $trxProfiler->resetExpectations();
- $trxProfiler->setExpectations(
+ $trxProfiler->redefineExpectations(
$this->context->getRequest()->hasSafeMethod()
? $this->config->get( 'TrxProfilerLimits' )['PostSend-GET']
: $this->config->get( 'TrxProfilerLimits' )['PostSend-POST'],
$fname = __METHOD__;
$trxLimits = $this->context->getConfig()->get( 'TrxProfilerLimits' );
$trxProfiler = Profiler::instance()->getTransactionProfiler();
- $trxProfiler->setExpectations( $trxLimits['POST'], $fname );
+ $trxProfiler->redefineExpectations( $trxLimits['POST'], $fname );
DeferredUpdates::addCallableUpdate( function () use ( $trxProfiler, $trxLimits, $fname ) {
- $trxProfiler->setExpectations( $trxLimits['PostSend-POST'], $fname );
+ $trxProfiler->redefineExpectations( $trxLimits['PostSend-POST'], $fname );
} );
$data = null;
$fname = __METHOD__;
$trxLimits = $this->getConfig()->get( 'TrxProfilerLimits' );
$trxProfiler = Profiler::instance()->getTransactionProfiler();
- $trxProfiler->setExpectations( $trxLimits['POST'], $fname );
+ $trxProfiler->redefineExpectations( $trxLimits['POST'], $fname );
DeferredUpdates::addCallableUpdate( function () use ( $trxProfiler, $trxLimits, $fname ) {
- $trxProfiler->setExpectations( $trxLimits['PostSend-POST'], $fname );
+ $trxProfiler->redefineExpectations( $trxLimits['PostSend-POST'], $fname );
} );
$retval = $pageObj->doRollback(
}
/**
- * Set multiple performance expectations
+ * Set one or multiple performance expectations
*
* With conflicting expectations, the most narrow ones will be used
*
+ * Use this to initialize expectations or make them stricter mid-request
+ *
* @param array $expects Map of (event => limit)
* @param string $fname
* @since 1.26
}
/**
- * Reset performance expectations and hit counters
+ * Reset all performance expectations and hit counters
+ *
+ * Use this for unit testing or before applying a totally different set of expectations
+ * for a different part of the request, such as during "post-send" (execution after HTTP
+ * response completion)
*
* @since 1.25
*/
$this->expectBy = [];
}
+ /**
+ * Clear all expectations and hit counters and set new performance expectations
+ *
+ * Use this to apply a totally different set of expectations for a different part
+ * of the request, such as during "post-send" (execution after HTTP response completion)
+ *
+ * @param array $expects Map of (event => limit)
+ * @param string $fname
+ * @since 1.33
+ */
+ public function redefineExpectations( array $expects, $fname ) {
+ $this->resetExpectations();
+ $this->setExpectations( $expects, $fname );
+ }
+
/**
* Mark a DB as having been connected to with a new handle
*