BloombergLP::bdlmt::Throttle::initialize

Initialize this Throttle to limit the average period of actions permitted to the specified nanosecondsPerAction, and the maximum number of simultaneous actions allowed to the specified maxSimultaneousActions. Use the monotonic system clock to measure time (see []Clock-Types)). The configured throttle will over time limit the average number of actions permitted to a rate of 1 / nanosecondsPerAction. If maxSimultaneousActions is 0, the throttle will be configured to permit no actions, otherwise if nanosecondsPerAction is 0, the throttle will be configured to permit all actions. The behavior is undefined unless 0 <= nanosecondsPerAction, 0 <= maxSimultaneousActions, 0 < nanosecondsPerAction || 0 < maxSimultaneousActions, and maxSimultaneousActions * nanosecondsPerActionLeak <= LLONG_MAX. Note that the behavior for other methods is undefined unless this Throttle is initialized (either using one of the overloads of this function, or a BDLMT_THROTTLE_INIT macro) prior to being called.

Synopsis

Declared in <bdlmt_throttle.h>

void
initialize(
    int maxSimultaneousActions,
    Int64 nanosecondsPerAction,
    std::chrono::steady_clock const&);