Les différentes situations d'instanciation et de lancement d'un thread
Les traitements dans ce nsIRunnable :
Quoi faire dans chaque cas ? est -il possible ? Doit-on proxyfié ? à quel moment fait-t-on le proxy (constructeur du nsIRunnable, ou dans le run()) etc... Bref, toutes les infos pour que ça fonctionne (si c'est possible)
| traitements | situation A | situation B | situation C |
| 1 | ok | (pas testé) | ok |
| 2 | Utiliser des proxys sur les objets xpcom. Proxyfier les objets avant éxecution du thread | (pas testé) | ok |
| 3 | Pour les objets DOM , pas de problèmes. Objets globaux : dead lock (testé avec Math) | (pas testé) | Math n'est pas considéré comme instanciés dans le script XUL (Global). Le objets du script XUL doivent être proxifiés |
| 4 | Comme 2 | (pas testé) | (pas testé) |
| 5 | comme 2 (?) | (pas testé) | (pas testé) |
Comportement inféré :
Si on doit créer un proxy, alors il faut toujours le créer en dehors du run()
Tout ce qui est objet global JS (Math..)et XPCOM est considéré comme GLOBAL.
Tout ce qui est déclaré au niveau script XUL est DOM.
Si nsiRunnable est DOM : objets globals/XPCOM doivent être proxifiés.
Si nsiRunnable est XPCOM: objets DOM doivent être proxifiés.
L'endroit où est instancié l'objet nsIThread n'a aucune importance à priori.
Si on veut faire du thread avec des objets DOM, il est préférable d'utiliser un nsIRunnable déclaré dans le contexte DOM
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.