Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/06/2014, 17:53
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Shared Memory

Al parecer falla alguna validación y la forma de escribir el nuevo valor, con tu código siempre obtenía cero en la lectura, prueba esto:

Código PHP:
Ver original
  1. <?php
  2.     // abro el espacio 0xff3 de 8 bits, si no existe lo crea
  3.     $shm_id = shmop_open(0xff3, "c", 0777, 8);
  4.     if (!$shm_id) die("No se pudo acceder la memoria");
  5.     $shm_size = shmop_size($shm_id);
  6.     // leo el valor de esta posicion
  7.     $shmr = shmop_read($shm_id, 0, $shm_size);
  8.     // Validación previa
  9.     if($shmr === false) {
  10.         echo "[No se puede leer]";
  11.         $shmr = 0;
  12.     } else {
  13.          echo "[size:$shm_size][reading:$shmr]";
  14.     }
  15.     // si el valor es 1 lo cambio por 0, y si es 0 lo cambio por 1, y guardo el resultado.
  16.     $val = ($shmr == 0) ? 1 : 0;
  17.     $shmw=shmop_write($shm_id, "$val", 0);
  18.     echo "[writing:$shmw][val:$val]";

Con eso si alterna los valores cero y uno entre cada lectura.
__________________
- León, Guanajuato
- GV-Foto