Fatal error: Call to undefined function sem_get() Fatal error: Call to undefined function sem_get() windows windows

Fatal error: Call to undefined function sem_get()


The sem_get() function is provided by the Semaphore, Shared Memory and IPC component.

Quoting the introduction of it's manual section :

This extension is not available on Windows platforms.


I don't know if that will work as expected, but I found a workaround for sem_get on Windows:

if (!function_exists('sem_get')) {    function sem_get($key) {        return fopen(__FILE__ . '.sem.' . $key, 'w+');    }    function sem_acquire($sem_id) {        return flock($sem_id, LOCK_EX);    }    function sem_release($sem_id) {        return flock($sem_id, LOCK_UN);    }}

Also, I needed ftok on Windows too:

if( !function_exists('ftok') ){    function ftok($filename = "", $proj = "")    {        if( empty($filename) || !file_exists($filename) )        {            return -1;        }        else        {            $filename = $filename . (string) $proj;            for($key = array(); sizeof($key) < strlen($filename); $key[] = ord(substr($filename, sizeof($key), 1)));            return dechex(array_sum($key));        }    }}