3v4l.org

run code in 300+ PHP versions simultaneously
<?php $this->error_reporting(E_ALL, true); $profilings=array(microtime(true)); $filename='/tmp/mutex_kv-lock2.lock'; $fo =fopen($filename, 'w'); $result=flock($fo, LOCK_EX | LOCK_NB, $ref); $r1 =flock($fo, LOCK_UN); $r2 =fclose($fo); var_dump($fo,$result,$r1,$r2,$ref);echo "\r\n"; $fo =fopen($filename, 'w+'); $r0 =flock($fo, LOCK_EX, $ref); $r4 =fwrite($fo, (float)$_SERVER['REQUEST_TIME_FLOAT']."\n"); $r1 =flock($fo, LOCK_UN); $r2 =fclose($fo); var_dump($fo,$r0,$r4,$r1,$r2,$ref);echo "\r\n"; unset($fo, $r1, $r2, $r0); sleep(2); $profilings[]=microtime(true); echo ($profilings[1]-$profilings[0]).'<br/>'.(float)$_SERVER['REQUEST_TIME_FLOAT'].'<br/>'.$profilings[0].'<br/>'; echo 'pid='.posix_getpid().'<br/>'; ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/dU9qU
function name:  (null)
number of ops:  108
compiled vars:  !0 = $profilings, !1 = $filename, !2 = $fo, !3 = $result, !4 = $ref, !5 = $r1, !6 = $r2, !7 = $r0, !8 = $r4
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   FETCH_THIS                                       $9      
          1        INIT_METHOD_CALL                                         $9, 'error_reporting'
          2        SEND_VAL_EX                                              32767
          3        SEND_VAL_EX                                              <true>
          4        DO_FCALL                                      0          
    3     5        INIT_FCALL                                               'microtime'
          6        SEND_VAL                                                 <true>
          7        DO_ICALL                                         $11     
          8        INIT_ARRAY                                       ~12     $11
          9        ASSIGN                                                   !0, ~12
    5    10        ASSIGN                                                   !1, '%2Ftmp%2Fmutex_kv-lock2.lock'
    6    11        INIT_FCALL                                               'fopen'
         12        SEND_VAR                                                 !1
         13        SEND_VAL                                                 'w'
         14        DO_ICALL                                         $15     
         15        ASSIGN                                                   !2, $15
    7    16        INIT_FCALL                                               'flock'
         17        SEND_VAR                                                 !2
         18        SEND_VAL                                                 6
         19        SEND_REF                                                 !4
         20        DO_ICALL                                         $17     
         21        ASSIGN                                                   !3, $17
    8    22        INIT_FCALL                                               'flock'
         23        SEND_VAR                                                 !2
         24        SEND_VAL                                                 3
         25        DO_ICALL                                         $19     
         26        ASSIGN                                                   !5, $19
    9    27        INIT_FCALL                                               'fclose'
         28        SEND_VAR                                                 !2
         29        DO_ICALL                                         $21     
         30        ASSIGN                                                   !6, $21
   10    31        INIT_FCALL                                               'var_dump'
         32        SEND_VAR                                                 !2
         33        SEND_VAR                                                 !3
         34        SEND_VAR                                                 !5
         35        SEND_VAR                                                 !6
         36        SEND_VAR                                                 !4
         37        DO_ICALL                                                 
         38        ECHO                                                     '%0D%0A'
   12    39        INIT_FCALL                                               'fopen'
         40        SEND_VAR                                                 !1
         41        SEND_VAL                                                 'w%2B'
         42        DO_ICALL                                         $24     
         43        ASSIGN                                                   !2, $24
   13    44        INIT_FCALL                                               'flock'
         45        SEND_VAR                                                 !2
         46        SEND_VAL                                                 2
         47        SEND_REF                                                 !4
         48        DO_ICALL                                         $26     
         49        ASSIGN                                                   !7, $26
   14    50        INIT_FCALL                                               'fwrite'
         51        SEND_VAR                                                 !2
         52        FETCH_R                      global              ~28     '_SERVER'
         53        FETCH_DIM_R                                      ~29     ~28, 'REQUEST_TIME_FLOAT'
         54        CAST                                          5  ~30     ~29
         55        CONCAT                                           ~31     ~30, '%0A'
         56        SEND_VAL                                                 ~31
         57        DO_ICALL                                         $32     
         58        ASSIGN                                                   !8, $32
   15    59        INIT_FCALL                                               'flock'
         60        SEND_VAR                                                 !2
         61        SEND_VAL                                                 3
         62        DO_ICALL                                         $34     
         63        ASSIGN                                                   !5, $34
   16    64        INIT_FCALL                                               'fclose'
         65        SEND_VAR                                                 !2
         66        DO_ICALL                                         $36     
         67        ASSIGN                                                   !6, $36
   17    68        INIT_FCALL                                               'var_dump'
         69        SEND_VAR                                                 !2
         70        SEND_VAR                                                 !7
         71        SEND_VAR                                                 !8
         72        SEND_VAR                                                 !5
         73        SEND_VAR                                                 !6
         74        SEND_VAR                                                 !4
         75        DO_ICALL                                                 
         76        ECHO                                                     '%0D%0A'
   18    77        UNSET_CV                                                 !2
         78        UNSET_CV                                                 !5
         79        UNSET_CV                                                 !6
         80        UNSET_CV                                                 !7
   19    81        INIT_FCALL                                               'sleep'
         82        SEND_VAL                                                 2
         83        DO_ICALL                                                 
   20    84        INIT_FCALL                                               'microtime'
         85        SEND_VAL                                                 <true>
         86        DO_ICALL                                         $41     
         87        ASSIGN_DIM                                               !0
         88        OP_DATA                                                  $41
   21    89        FETCH_DIM_R                                      ~42     !0, 1
         90        FETCH_DIM_R                                      ~43     !0, 0
         91        SUB                                              ~44     ~42, ~43
         92        CONCAT                                           ~45     ~44, '%3Cbr%2F%3E'
         93        FETCH_R                      global              ~46     '_SERVER'
         94        FETCH_DIM_R                                      ~47     ~46, 'REQUEST_TIME_FLOAT'
         95        CAST                                          5  ~48     ~47
         96        CONCAT                                           ~49     ~45, ~48
         97        CONCAT                                           ~50     ~49, '%3Cbr%2F%3E'
         98        FETCH_DIM_R                                      ~51     !0, 0
         99        CONCAT                                           ~52     ~50, ~51
        100        CONCAT                                           ~53     ~52, '%3Cbr%2F%3E'
        101        ECHO                                                     ~53
   22   102        INIT_FCALL                                               'posix_getpid'
        103        DO_ICALL                                         $54     
        104        CONCAT                                           ~55     'pid%3D', $54
        105        CONCAT                                           ~56     ~55, '%3Cbr%2F%3E'
        106        ECHO                                                     ~56
   23   107      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
151.91 ms | 1404 KiB | 29 Q