Nesse laboratório vamos começar a explorar o uso de corotinas.
Crie agora um programa C que utilize a biblioteca de corotinas para criar duas corotinas bem simples, chamadas "ping" e "pong". Cada uma delas deve implementar um loop. Quando ativada, uma corotina imprime "ping" ou "pong" e o valor recebido como parâmetro. Após imprimir esse valor, ela deve suspender, retornando para seu "chamador" o valor de um contador (uma variável local).
O programa principal deve ter um loop onde ativa alternadamente cada uma
dessas corotinas (cada passada no loop ativa uma delas), passando para
essa corotina o valor do contador do loop. Ao receber de volta o controle,
o programa deve imprimir o valor retornado por coro_resume
.
Uma saída exemplo desse programa seria:
ping 0 main: 0 pong 1 main: 0 ping 2 main: 1 pong 3 main: 1 ...obs: Para compilar seu programa, use
gcc -m32 -Wa,--execstack -o meuprog meuprog.c core.s corotinas.c