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. Optionally specify clockType to indicate the system clock that will be used to measure time (see []Clock‐Types)). If clockType is not supplied the monotonic system clock is used. 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,
    bsls::SystemClockType::Enum clockType = bsls::SystemClockType::e_MONOTONIC);

Created with MrDocs