◆ stretch()
      
        
          | ILIAS\HTTP\Duration\CallbackDuration::stretch  | 
          ( | 
          callable  | 
          $callback | ) | 
           | 
        
      
 
- Returns
 - mixed|null 
 
Definition at line 32 of file CallbackDuration.php.
   34         $start_time = microtime(
true);
    37         register_shutdown_function(
static function () use (&$halted) {
    39                 throw new \LogicException(
"Callback could not be stretched because it halted the programm.");
    43         $return = $callback();
    46         $elapsed_time_in_us = ((microtime(
true) - $start_time) * self::S_TO_US);
    47         $duration_in_us = ($this->duration_in_ms * self::MS_TO_US);
    49         if ($elapsed_time_in_us > $duration_in_us) {
    50             throw new \RuntimeException(
"Execution of callback exceeded the given duration and could not be stretched.");
    53         if ($elapsed_time_in_us < $duration_in_us) {
    54             usleep((
int) round($duration_in_us - $elapsed_time_in_us));
  
 
 
The documentation for this class was generated from the following file: