Désactivation locale de la vérification thread safety

Bonjour à tous :slight_smile:

J’essaye de passer certaines de nos fonctionnalités en préemptif et pour ce faire, j’ai eu besoin d’adapter une partie du code afin qu’il réagisse différemment selon si on est sur un process préemptif ou non.

J’ai créé pour ce faire une petite méthode qui m’initialise systématiquement un booléen process à vrai si on est sur du préemptif.
Dans ma méthode “ERREUR_CAPTURER” (Appelée à chaque erreur grâce à APPELER SUR ERREUR), voici ce que j’ai :

<code 4D>
Si (vbEst_preemptif=Faux)
//%T-
MAIL_ENVOI_ERREUR (“Une erreur s’est produite”)
//%T+
Sinon
ENREGISTRE_ERREUR
Fin de si
</code 4D>

ENREGISTRE_ERREUR est thread-safe, et MAIL_ENVOI_ERREUR ne l’est pas du tout.

Malgré le fait que j’ai entouré MAIL_ENVOI_ERREUR des directives fournies dans la doc, je reçois tout de même l’erreur suivante quand je vérifie la syntaxe : La méthode ‘MAIL_ENVOI_ERREUR’ qui n’est pas thread-safe ne peut pas être appelée par une méthode déclarée thread-safe.

Est-ce que je fais quelque chose de travers, ou y’a-t-il un bug ? :x

Bonjour,
La désactivation de la vérification fonctionne sur les commandes 4D, mais pas sur les méthodes.
Dans le cas présenté, vous devriez mettre la directive //%T- au début de votre méthode MAIL_ENVOI_ERREUR et la directive //%T+ à la fin.
Cordialement,
Damien

D’accord, c’est dommage, je m’attendais à ce qu’il ignore tout le code encadré sans se poser davantage de questions.
Si je suis obligé d’aller mettre la directive partout dans ma hiérarchie d’appels, ça tue un peu le côté pratique je trouve.

Merci pour votre réponse rapide en tout cas, je vais m’adapter ! :mrgreen: