]>
wirehaze git hosting - ppos.git/blob - ppos/test/pingpong-task1.c
1 // PingPongOS - PingPong Operating System
2 // Prof. Carlos A. Maziero, DINF UFPR
3 // Versão 2.0 -- Junho de 2025
5 // ATENÇÃO: ESTE ARQUIVO NÃO DEVE SER ALTERADO;
6 // ALTERAÇÕES SERÃO DESCARTADAS NA CORREÇÃO.
8 // Teste da gestão básica de tarefas
14 static struct task_t
*ping
, *pong
;
16 // corpo da tarefa Ping
17 void body_ping(void *)
19 char *name
= task_name(NULL
);
21 printf("\t%s: inicio\n", name
);
22 for (int i
= 0; i
< 4; i
++)
24 printf("\t%s: %d\n", name
, i
);
27 printf("\t%s: fim\n", name
);
31 // corpo da tarefa Pong
32 void body_pong(void *)
34 char *name
= task_name(NULL
);
36 printf("\t\t%s: inicio\n", name
);
37 for (int i
= 0; i
< 4; i
++)
39 printf("\t\t%s: %d\n", name
, i
);
42 printf("\t\t%s: fim\n", name
);
46 // corpo da tarefa principal
47 void user_main(void *arg
)
50 char *name
= task_name(NULL
);
52 printf("%s: inicio\n", name
);
54 ping
= task_create("ping", body_ping
, NULL
);
56 pong
= task_create("pong", body_pong
, NULL
);
59 status
= task_switch(ping
);
60 assert(status
== NOERROR
);
62 status
= task_switch(pong
);
63 assert(status
== NOERROR
);
65 printf("%s: fim\n", name
);
67 status
= task_destroy(ping
);
68 assert(status
== NOERROR
);
70 status
= task_destroy(pong
);
71 assert(status
== NOERROR
);