COGNEW
– Referencia de Lenguaje Spin
Method
Si
se determina para ser código que es verdaderamente importante para correr en otro
cog en vez de escribir el código como el ejemplo de arriba, SomeObject deberá reescribirse
de la siguiente forma.
VAR
long StackSpace[8]
byte CogID
cog
PUB Start
Stop
CogID := cognew(Method, @StackSpace) 'Inicia método en otro cog
PUB Stop
if CogID > -1
cogstop(CogID)
iniciado
PRI Method
<Mas código aqui>
El ejemplo incluye dos métodos de interfase publicas,
puede usar para iniciar apropiadamente el código de objeto en otro cog. El principio
importante es que el objeto mismo esta proporcionando esta capacidad, y haciendo eso, esta
controlándola memoria de pila requerida para la operación apropiada. Note también que
Method
se cambio a método privado (
Código Ensamblador Propeller (Sintaxis 2)
Ensamblador Propeller en otro cog, la instrucción
ensamblador y un valor que puede opcionalmente ser usado por la rutina ensamblador, por
ejemplo:
PUB Main
cognew(@Toggle, 0)
DAT
ensamblador
Pagina 84 · Manual Propeller v1.1
PRI
) para descartar llamadas directas desde afuera.
org 0
'Espacio pila para nuevo cog
'Almacena Numero del Nuevo
'Previene multiples inicios
'Detiene el cog previamente
Start
Stop
y
, los cuales un objeto
COGNEW
necesita direccionar la rutina
'Inicia código Toggle
'Reinicia el apuntador