Skip to main content
Topic: Questions PHP (Read 3129 times) previous topic - next topic

Re: Questions PHP

Reply #15
Bon, je reviens avec une question pour les pros à propos de la fonction shm_attach()

$SHM_KEY = shm_attach($cle, 102400);
shm_put_var($SHM_KEY, 'var', $var); OU $variable = shm_get_var($SHM_KEY, 'var');
(selon si je sauvegarde ou si je charge)
Pis un peu + tard, quand j'en ai plus besoin, un p'tit
shm_detach($cle);

Après un reboot du serveur, ça marche impec pendant un moment (genre 10 à 12 heures quand même), puis cette saloperie commence à me renvoyer des identifiants vides, alors que c'est certainement pas la mémoire qui sature vu que j'en ai encore tout plein de dispo à ce moment là ($SHM_KEY est vide quoi, alors qu'avant quand on l'affiche ça donne un numéro)

Quelqu'un a une idée sur le pourquoi du comment?

Re: Questions PHP

Reply #16
Soit tu la détaches à un endroit ou ce ne doit pas l'etre soit cela correspond à une session expirée..
  • Une personne qui n'a jamais commis d'erreurs n'a jamais tenté d'innover. - Albert Einstein
  • La terre n'est pas un don de nos parents, ce sont nos enfants qui nous la prêtent...

Re: Questions PHP

Reply #17
Quand je la détache, elle a toujours été attachée avant (c'est plutot l'inverse qui m'inquiète à l'occase), sinon de toute façon il me mettrait une erreur

Par contre, tu crois qu'un bout de mémoire attaché par une session qui depuis a expiré peut empêcher tous les autres d'attacher de la mémoire?

Re: Questions PHP

Reply #18

Quand je la détache, elle a toujours été attachée avant (c'est plutot l'inverse qui m'inquiète à l'occase), sinon de toute façon il me mettrait une erreur

Par contre, tu crois qu'un bout de mémoire attaché par une session qui depuis a expiré peut empêcher tous les autres d'attacher de la mémoire?
Ce ne serait pas impossible car lorsque une session 'expire, toutes les variables qui y sont rattachées sont vidées.
  • Une personne qui n'a jamais commis d'erreurs n'a jamais tenté d'innover. - Albert Einstein
  • La terre n'est pas un don de nos parents, ce sont nos enfants qui nous la prêtent...

 

Re: Questions PHP

Reply #19
Ce ne serait pas impossible car lorsque une session 'expire, toutes les variables qui y sont rattachées sont vidées.

En fait (explication rapide), c'est pour les combats
Les données du combat n°4513 sont stockée dans la mémoire appelée avec cette clé, et à l'occase un autre joueur y accède avec cette même clé (combat multijoueur)
La mémoire est détachée quand tous les joueurs ont quitté un combat

Donc si c'est une session qui gicle, pourquoi ça empêcherait TOUS les autres joueurs d'attacher des bouts de mémoire, surtout en considérant que leurs combats à eux ont des n° différents...

PS: Après vérif, j'ai des gus déconnectés depuis plusieurs heures alors qu'ils ont encore un combat en cours (donc session expirée depuis longtemps), alors que le bug empêchant d'attacher la mémoire n'est pas (encore) présent actuellement, j'ai rebooté le serveur hier soir...

EDIT: La "memoire physique libre en %" augmente régulièrement depuis 4h du matin, j'avais 20% libre et là je suis à 55% libre... La logique de ce truc m'échappe...