Annotation of parser3/tests/httpd/response-timeout/site/config.p, revision 1.1

1.1     ! moko        1: @conf[filespec]
        !             2: $HTTPD[
        !             3:        $.mode[$env:TEST_HTTPD_MODE]
        !             4: ]
        !             5: $LIMITS[
        !             6:        $.max_loop(0)
        !             7: ]
        !             8: 
        !             9: @unhandled_exception[exception;stack]
        !            10: $exception.type: $exception.comment^if(def $marks){$marks}^if($request:query eq 'slow-unhandled'){^sleep(8)}
        !            11: 
        !            12: 
        !            13: @slow[p]
        !            14: ^sleep(8)
        !            15: 
        !            16: @CLASS
        !            17: httpd
        !            18: 
        !            19: @main[]
        !            20: $response:timeout(1)
        !            21: ^self.[$request:query][]
        !            22: 
        !            23: @quick[]
        !            24: quick
        !            25: 
        !            26: @sleep[]
        !            27: ^sleep(8)
        !            28: not reached
        !            29: 
        !            30: # the timeout is cancelled by 0 and restarted by the next assignment
        !            31: 
        !            32: @cancel[]
        !            33: $response:timeout(0)
        !            34: ^sleep(1.5)
        !            35: done after the timeout
        !            36: 
        !            37: @restart[]
        !            38: # sum of sleeps is longer than the timeout
        !            39: ^for[i](1;9){
        !            40:        $response:timeout(2)
        !            41:        ^sleep(0.25)
        !            42: }
        !            43: done, the timer was restarted
        !            44: 
        !            45: @loop[]
        !            46: ^for[i](1;2000000000){nothing}
        !            47: not reached
        !            48: 
        !            49: @hang[]
        !            50: ^file::exec[/hang.sh]
        !            51: not reached
        !            52: 
        !            53: @slow-unhandled[]
        !            54: $f[^file::exec[/detach.sh]]
        !            55: ^sleep(8)
        !            56: not reached
        !            57: 
        !            58: # cheking the interruption is not caught by ^try and does not run catch and finally code
        !            59: @try[]
        !            60: ^try{
        !            61:        ^sleep(8)
        !            62: }{
        !            63:        $marks[ caught]
        !            64:        $exception.handled(true)
        !            65: }
        !            66: not reached
        !            67: 
        !            68: @try-loop[]
        !            69: ^try{
        !            70:        ^for[i](1;2000000000){nothing}
        !            71: }{
        !            72:        $marks[ caught]
        !            73:        $exception.handled(true)
        !            74: }
        !            75: not reached
        !            76: 
        !            77: @try-nested[]
        !            78: ^try{
        !            79:        ^try{
        !            80:                ^sleep(8)
        !            81:        }{
        !            82:                $marks[ inner]
        !            83:        }{
        !            84:                $marks[$marks inner-finally]
        !            85:        }
        !            86: }{
        !            87:        $marks[$marks outer]
        !            88:        $exception.handled(true)
        !            89: }{
        !            90:        $marks[$marks outer-finally]
        !            91: }
        !            92: not reached
        !            93: 
        !            94: # libxml calls parser://slow/ and the callback swallows the interruption, the next long operation must be interrupted again
        !            95: @xml-callback[]
        !            96: ^try{
        !            97:        $d[^xdoc::load[parser://slow/]]
        !            98: }{
        !            99:        $exception.handled(true)
        !           100: }
        !           101: ^sleep(8)
        !           102: not reached
        !           103: 
        !           104: # the connection is not answered, the http client waits for its timeout (5 s)
        !           105: @self[]
        !           106: $f[^file::load[binary;http://localhost:8103/?quick; $.timeout(5) ]]
        !           107: not reached

E-mail: