Archiviazione persistente nel server
È possibile ottimizzare l'applicazione in modo che lo stub del server non libera memoria nel server alla conclusione di una chiamata di procedura remota. Ad esempio, quando un handle di contesto verrà modificato da diverse procedure remote, è possibile usare l'attributo ACF [allocate(dont_free)] per conservare la memoria allocata nel server.
L'attributo [allocate(dont_free)] viene aggiunto alla dichiarazione typedef ACF nell'ACF. Ad esempio:
/* ACF file fragment */
typedef [allocate(all_nodes, dont_free)] P_TREE_TYPE;
Quando viene specificato l'attributo [allocate(dont_free)] , la struttura dei dati dell'albero viene allocata, ma non liberata dal server stub. Quando si rendono disponibili i puntatori a tali aree dati persistenti per altre routine, ad esempio copiando i puntatori alle variabili globali, i dati conservati sono accessibili ad altre funzioni server. L'attributo [allocate(dont_free)] è particolarmente utile per mantenere le strutture del puntatore persistente come parte delle informazioni sullo stato del server associate a un tipo di handle di contesto.