Forum Programmation.perl Stocker un descripteur de Socket dans un Hash Partagé

Posté par  .
Étiquettes : aucune
0
12
déc.
2006
Salut à tous,

J'ai un problème qui ressemble fort au dernier que j'ai posté: http://linuxfr.org/forums/27/19772.html

J'ai un Hash de Hash partagé entre plusieurs thread qui fonctionne maintenant parafaitement comme ceci:

my %realtime : shared;
$realtime{ key } = &share({});


Maintenant quand j'essaye de stocker un descripteur de socket, IO::Socket::INET=GLOB(0x9a6d81c), dans mon hash partagé, même un hash simple, ça ne fonctionne pas:
"Thread 4 terminated abnormally: Invalid value for shared scalar at ..."

J'ai testé des trucs avec les références mais je ne les maîtrise pas. Comment est ce que je peux stocker ce **** de descripteur ?

Merci d'avance
  • # A essayer...

    Posté par  . Évalué à 2.

    Tu dois passer le fileno (perldoc -f fileno) de ton GLOB, et le reouvrir dans ton thread avec open SOCKET, "<&=$fileno" (attention aux accès concurrents...)
    • [^] # Bingo

      Posté par  . Évalué à 1.

      Exactement ce qu'il me fallait... Merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.