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 conclusion d’un appel de procédure distante. Par exemple, lorsqu’un handle de contexte sera manipulé par plusieurs procédures distantes, vous pouvez utiliser l’attribut ACF [allocate(dont_free)] pour conserver la mémoire allouée sur le serveur.

L’attribut [allocate(dont_free)] est ajouté à la déclaration de typedef ACF dans l’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 des données d’arborescence est allouée, mais pas libérée, par le stub du serveur. Lorsque vous rendez les pointeurs vers ces zones de données persistantes disponibles pour d’autres routines( 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 maintenir des structures de pointeur persistantes dans le cadre des informations d’état du serveur associées à un type de handle de contexte.