Manuel §2    

Objets

Les objets sont des entités qui comprennent des données, des fonctions et des événements. Ces données, fonctions ou événements varient en fonction du type d ’objet.

Les objets propres au script, c ’est à dire qui ne sont pas déclarés dans un fichier d ’environnement, sont déclarés en début de script dans une partie précédée par le mot clé " Object " .

Pour chaque objet nous avons une déclaration du genre

NomDObjet TypeDObjet {, Parametre} ;

Les paramètres dépendent du type d ’objet.

Les objets définis dans l ’environnement n ’ont pas besoin d ’être déclarés dans la partie " Object ".

Auto-verrouillage

Certains objets sont uniques et partagés entre toutes les clauses, des mises à jour simultanées faites par deux clauses concurrentes pourraient amener à des incohérences dans les données enregistrées.

Afin de s ’assurer de l ’intégrité de ces données Sisal alloue exclusivement chaque objet à la première clause qui y fait appel et libère cet objet automatiquement à la fin d ’exécution de la clause. Tout autre clause qui chercherait à accéder à cet objet pendant qu ’il est alloué à une clause, se trouverait suspendu aussi longtemps que la clause verrouillante ne se serait pas terminée.

Par principe le verrouillage (" Lock ") est effectué au premier appel de fonction de l ’objet, et le déverrouillage se produit à la fin de l'exécution de la clause. Si nécessaire une clause peut déverrouiller un objet en appelant la méthode " Unlock() ".

Il est donc conseillé d ’avoir des clauses exécution courte ou d ’utiliser le mécanisme de déverrouillage.