159160161162163164165166167168169
myself.actor_UNLOCKSECTION(); /* * restaurer le contexte */ global.pull(); /* * Si les nodes étaient déjà verrouillés par moi-même avant, je ne déverrouille * pas ici...
6768697071727374757677
while (interpreter.isCanIterate() && xnode==null) { xnode = enode.exec(true); _clear_closure_(local); } global.pull(); } catch (Exception ex) { interpreter.consumeBreakCode_onLoop(); interpreter.setCanLoop(oldCanLoop);
99100101102103104105106107108109
_clear_closure_(local); xnode = enode.exec(true); loop = xnode==null && interpreter.isCanIterate() && (untilLoop ? !xPC_Condition(local, cnode): xPC_Condition(local, cnode)); } // global.pull(); if (global.size() != href) { global.setOffset(slock); global.setSize(href); // restaurer le heap à la bonne taille }
153154155156157158159160161162163
*/ while (xnode==null && interpreter.isCanIterate()) { _clear_closure_(local); xnode = enode.exec(true); } global.pull(); //global.getTailStack().setLock(tlock); // restore la tail recursive Stack... if (global.size() != href) { global.setOffset(slock);
123124125126127128129130131132133
boolean loop = true; while (loop && interpreter.isCanIterate()) { global.push(); rnode = enode.exec(true); global.pull(); if (rnode != null) xnode.addElement(rnode.secure()); loop = (untilLoop ? !xPC_Condition(global, cnode): xPC_Condition(global, cnode));
8990919293949596979899
*/ while (xnode == null && interpreter.isCanIterate() && xPC_ConditionX(myClosure, cnode)) { _clear_closure_(myClosure); xnode = enode.exec(true); } global.pull(); } else if (tcode.isPCode(PCoder.PC_LIST)) { /** * boucle génératrice de listes.
113114115116117118119120121122123
_clear_closure_(myClosure); rnode = enode.exec(true); if (rnode != null) xnode.addElement(rnode.secure()); } global.pull(); } else // erreur de syntaxe. throw new InterpreterException(StdErrors.Syntax_error);
96979899100101102103104105106
} /* * restaurer le contexte */ global.pull(); /* * fermeture de la file d'attente dans tous les cas... */ myself.pendingMsg_CLOSE(old_queue);