當前位置: 首頁>>代碼示例>>PHP>>正文


PHP shmop_close函數代碼示例

本文整理匯總了PHP中shmop_close函數的典型用法代碼示例。如果您正苦於以下問題:PHP shmop_close函數的具體用法?PHP shmop_close怎麽用?PHP shmop_close使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了shmop_close函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: send

 /**
  * Writes a message to the shared memory.
  *
  * @param mixed   $message The message to send
  * @param integer $signal  The signal to send afterward
  * @param integer $pause   The number of microseconds to pause after signalling
  */
 public function send($message, $signal = null, $pause = 500)
 {
     $messageArray = array();
     if (($shmId = @shmop_open($this->pid, 'a', 0, 0)) > 0) {
         // Read any existing messages in shared memory
         $readMessage = shmop_read($shmId, 0, shmop_size($shmId));
         $messageArray[] = unserialize($readMessage);
         shmop_delete($shmId);
         shmop_close($shmId);
     }
     // Add the current message to the end of the array, and serialize it
     $messageArray[] = $message;
     $serializedMessage = serialize($messageArray);
     // Write new serialized message to shared memory
     $shmId = shmop_open($this->pid, 'c', 0644, strlen($serializedMessage));
     if (!$shmId) {
         throw new ProcessControlException(sprintf('Not able to create shared memory segment for PID: %s', $this->pid));
     } else {
         if (shmop_write($shmId, $serializedMessage, 0) !== strlen($serializedMessage)) {
             throw new ProcessControlException(sprintf('Not able to write message to shared memory segment for segment ID: %s', $shmId));
         }
     }
     if (false === $signal) {
         return;
     }
     $this->signal($signal ?: $this->signal);
     usleep($pause);
 }
開發者ID:edwardstock,項目名稱:spork,代碼行數:35,代碼來源:SharedMemory.php

示例2: MonClose

 function MonClose()
 {
     if (!shmop_delete($this->{$shm_id})) {
         debug("No se pudo borrar el segmento de memoria compartida.", "red");
     }
     shmop_close($this->{$shm_id});
 }
開發者ID:BackupTheBerlios,項目名稱:ascore,代碼行數:7,代碼來源:lib_monitor.php

示例3: close

 function close()
 {
     if (isset($this->segment)) {
         shmop_close($this->segment);
         $this->segment = null;
     }
 }
開發者ID:Garcy111,項目名稱:Garcy-Framework-2,代碼行數:7,代碼來源:Cache.php

示例4: close

 public function close()
 {
     if ($this->status == self::STATUS_OPENED) {
         shmop_close($this->shmId);
         $this->status = self::STATUS_CLOSED;
     }
 }
開發者ID:dan-homorodean,項目名稱:falx-concurrency-and-ipc,代碼行數:7,代碼來源:Handle.php

示例5: session_value

function session_value($name, $index)
{
    global $shm_key, $shm_var, $sem_id;
    switch ($index) {
        case 'config':
            $shm_size = 859;
            break;
        case 'ipdata':
            $shm_size = 30050;
            break;
        default:
            $shm_size = 0;
    }
    sem_acquire($sem_id['shlock']);
    $shm_id = shmop_open($shm_key[$index], 'c', 0644, $shm_size);
    if ($name == 'update') {
        $shm_data = serialize($shm_var[$index]);
        shmop_write($shm_id, str_pad($shm_data, $shm_size, "", STR_PAD_RIGHT), 0);
    } else {
        $shm_data = shmop_read($shm_id, 0, $shm_size);
        $shm_var[$index] = @unserialize($shm_data);
    }
    shmop_close($shm_id);
    sem_release($sem_id['shlock']);
}
開發者ID:phateio,項目名稱:php-radio-kernel,代碼行數:25,代碼來源:shmop.inc.php

示例6: read

 /**
  * @param $key
  * @param int $mode
  * @param int $size
  * @return mixed|null
  * @throws OpenSharedMemoryException
  * @throws ReadSharedMemoryException
  * @throws SupportSharedMemoryException
  */
 public static function read($key, $mode = 0644, $size = 100)
 {
     if (!self::checkSHMOPSupport()) {
         return null;
     }
     @($shm_id = shmop_open($key, "a", $mode, $size));
     //read only
     if (!$shm_id) {
         throw new OpenSharedMemoryException("The shared memory block could not be opened");
     }
     @($cached_string = shmop_read($shm_id, 0, $size));
     if (!$cached_string) {
         shmop_delete($shm_id);
         shmop_close($shm_id);
         throw new ReadSharedMemoryException("The shared memory block could not be read");
     }
     $data = json_decode($cached_string, true);
     if (isset($data['expiration']) && time() > $data['expiration'] || !isset($data['expiration'])) {
         shmop_delete($shm_id);
         shmop_close($shm_id);
         return null;
     }
     shmop_close($shm_id);
     return unserialize($data['value']);
 }
開發者ID:splitio,項目名稱:php-client,代碼行數:34,代碼來源:SharedMemory.php

示例7: __destruct

 public function __destruct()
 {
     if ($this->tempFilename) {
         unlink($this->tempFilename);
     }
     shmop_close($this->shmID);
 }
開發者ID:panlatent,項目名稱:easy-shm,代碼行數:7,代碼來源:Shm.php

示例8: save

 public function save($shmKey, $appVars)
 {
     $memBlobkId = @shmop_open($shmKey, "w", 0644, 1024);
     $result = shmop_write($memBlobkId, serialize($appVars), 0);
     shmop_close($memBlobkId);
     return $result;
 }
開發者ID:chathura86,項目名稱:zf2-application-variable,代碼行數:7,代碼來源:Memory.php

示例9: resize

 /**
  * Resize memory block
  * @param int $size
  * @return bool
  */
 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;
 }
開發者ID:rhodesiaxlo,項目名稱:ngx_lua_php_queue,代碼行數:39,代碼來源:ShmMem.php

示例10: rm

 function rm($key)
 {
     $this->shmop_key = ftok($this->pre . $key);
     $this->shmop_id = shmop_open($this->shmop_key, 'c', 0644, 0);
     $result = shmop_delete($this->shmop_id);
     shmop_close($this->shmop_id);
     return $result;
 }
開發者ID:hcd2008,項目名稱:destoon,代碼行數:8,代碼來源:cache_shmop.class.php

示例11: __unlock

function __unlock()
{
    if (isset($_SERVER['sync'])) {
        shmop_delete($_SERVER['sync']);
        shmop_close($_SERVER['sync']);
        unset($_SERVER['sync']);
    }
}
開發者ID:melogamepay,項目名稱:xp-framework,代碼行數:8,代碼來源:synchronized.sapi.php

示例12: getExceptions

 /**
  * Get all the exceptions added to the shared memory.
  *
  * @return \Throwable[]
  */
 public function getExceptions() : array
 {
     $memory = shmop_open($this->key, "a", 0, 0);
     $exceptions = $this->unserialize($memory);
     shmop_delete($memory);
     shmop_close($memory);
     return $exceptions;
 }
開發者ID:duncan3dc,項目名稱:fork-helper,代碼行數:13,代碼來源:SharedMemory.php

示例13: delete

 /**
  * @return boolean
  */
 public function delete()
 {
     if (!$this->exists()) {
         return true;
     }
     $shmId = shmop_open($this->shmKey, 'w', 0, 0);
     $result = (bool) shmop_delete($shmId);
     shmop_close($shmId);
     return $result;
 }
開發者ID:sgc-fireball,項目名稱:libphp,代碼行數:13,代碼來源:SHM.php

示例14: getCallbackParams

 public function getCallbackParams()
 {
     $shmId = @shmop_open($this->pid, 'a', 0644, 0);
     if (empty($shmId)) {
         return false;
     }
     $datas = unserialize(shmop_read($shmId, 0, shmop_size($shmId)));
     shmop_delete($shmId);
     shmop_close($shmId);
     return $datas;
 }
開發者ID:Lith,項目名稱:nofussframework,代碼行數:11,代碼來源:Task.php

示例15: close

 public function close()
 {
     if (false === $this->m_segmentId) {
         return false;
     }
     // Ensure correct object state for the case shmop_close fails in FATAL.
     $segmentId = $this->m_segmentId;
     $this->m_segmentId = false;
     shmop_close($segmentId);
     return true;
 }
開發者ID:evalcodenet,項目名稱:net.evalcode.components.runtime,代碼行數:11,代碼來源:shmop.php


注:本文中的shmop_close函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。