Bonjour à tous,
Toujours dans le cadre du développement de mon petit serveur, je suis amené à utiliser des plugins (pour lui permettre d'utiliser plusieurs protocoles simultanément). J'ouvre donc le plugin avec dlopen(), puis je cherche le symbole de la fonction ProtoIni() qui retourne un tableau contenant des pointeurs vers les fonctions du plugin. Et là, je me pose une question existentielle : est-ce que ces pointeurs restent valides après un dlclose() ? Sont-ils même encore valides quand je les reçois ?
En fait, voici un petit schéma du fonctionnement de tout ceci :
[Main]
[_ Charge une table de fonctions composée d'une collection de pointeurs sur fonction et d'une table de correspondance requête/fonction (ProtoIni()).
|_ Lance le thread serveur en lui passant la table de fonctions.
[Serveur]
|_ Emballe les requêtes reçues dans une structure contenant un pointeur vers la table de fonctions, la requête, et le socket à qui renvoyer une réponse.
|_ Passe tout ce petit paquet à un thread interpreteur...
[Interpreteur]
|_ Recherche la requête dans la table, et lance la fonction appropriée.
|_ Renvoie une requête via le socket fourni si la fonction appelée en retourne une.
Soyez indulgents pour l'architecture un peu foireuse, je viens juste de finir ma première année d'IUT...
Merci d'avance pour votre aide.
# mouais
Posté par JaguarWan . Évalué à 1.
[^] # Re: mouais
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.