Partager via


Stockage persistant sur le serveur

Vous pouvez optimiser votre application afin que le stub du serveur ne libère pas de mémoire sur le serveur à la fin d’un appel de procédure distante. Par exemple, lorsqu’un handle de contexte est manipulé par plusieurs procédures distantes, vous pouvez utiliser l’attribut ACF [allocation(dont_free)] pour conserver la mémoire allouée sur le serveur.

L’attribut [allocate(dont_free)] est ajouté à la déclaration typedef ACF dans aCF. Par exemple :

/* ACF file fragment */
typedef [allocate(all_nodes, dont_free)] P_TREE_TYPE;

Lorsque l’attribut [allocate(dont_free)] est spécifié, la structure de données d’arborescence est allouée, mais pas libérée, par le stub du serveur. Lorsque vous mettent à la disposition d’autres routines les pointeurs vers ces zones de données persistantes(par exemple, en copiant les pointeurs vers des variables globales), les données conservées sont accessibles à d’autres fonctions serveur. L’attribut [allocate(dont_free)] est particulièrement utile pour la gestion des structures de pointeur persistantes dans le cadre des informations d’état du serveur associées à un type de handle de contexte.