Jamm\Memory\Shm\ShmMem::resize PHP Method

resize() protected method

Resize memory block
protected resize ( integer $size ) : boolean
$size integer
return boolean
    protected function resize($size)
    {
        if ($size > $this->max_size) {
            return false;
        }
        //should be called AFTER reading memory (to not loose changing of variables)
        if (empty($this->mem)) {
            return false;
        }
        ignore_user_abort(true);
        set_time_limit(180);
        if (is_array($this->mem)) {
            $this->mem[self::map_info][self::map_info_resized] = $this->mem[self::map_info][self::map_info_resized] + 1;
            $this->mem[self::map_info][self::map_info_resizetime] = time();
        }
        shmop_delete($this->shm);
        shmop_close($this->shm);
        $t = serialize($this->mem);
        $memsize = strlen($t);
        if ($memsize > $size) {
            $size = $memsize + 1000;
        }
        $this->shm = shmop_open($this->shmkey, "n", 0777, $size);
        if (!$this->shm) {
            return false;
        }
        //mmm... oops.
        unset($this->mem);
        $w = shmop_write($this->shm, str_pad($t, shmop_size($this->shm), ' ', STR_PAD_RIGHT), 0);
        if (!$w) {
            return false;
        }
        return true;
    }