update page now

parallel\Runtime::close

(0.8.0)

parallel\Runtime::closeRuntime Graceful Join

Description

public parallel\Runtime::close(): void

Shall request that the runtime shutsdown.

Note:

Tasks scheduled for execution will be executed before the shutdown occurs.

Exceptions

Warning

Shall throw parallel\Runtime\Error\Closed if Runtime was already closed.

add a note

User Contributed Notes 1 note

up
3
andre at webtechnik dot ch
4 years ago
This is a simple test to show how close and kill works.

<?php
/**
 * Test close and kill
 * - main thread writes to main.log
 * - second thread writes to thread.log and shutdown.log
 * - main thread runs 10 seconds, second thread runs 20 seconds
 * - close will wait until second thread stops
 * - kill don't waits and kill immediately the second thread
 */

/ main thread
logToFile("start");

/ create a second thread
$thread = new parallel\Runtime();
$thread->run(function(){
    
    / what to do if thread shuts down
    register_shutdown_function ( function(){file_put_contents("shutdown.log",date('Y-m-d H:i:s') . "\t last will");} );

    / loop and count for 20 seconds
    $c=0;
    while ($c++ < 20){
        sleep(1);
        echo $c."|";
        file_put_contents("thread.log",date('Y-m-d H:i:s') . "\t" . $c.PHP_EOL, FILE_APPEND);
    }
});

/ sleep 10 seconds
sleep(10);

/ mainthread kills thread immediately
/$thread->kill();

/ mainthread waits on thread
$thread->close();

logToFile("end");

function logToFile($msg){
    echo PHP_EOL.$msg.PHP_EOL;
    file_put_contents("main.log",date('Y-m-d H:i:s') . "\t" . $msg.PHP_EOL, FILE_APPEND);
}
?>
To Top

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant