3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
154.27 ms | 1396 KiB | 31 Q