📄 tsk1.c
字号:
/* tsk1.c - Task #1 */#include <psos.h>#include <prepc.h>#include <stdio.h>#include "misc.h"#include "appl.h"voidsend_msg(ULONG me, ULONG qid, ULONG ev, ULONG tid, char * qn){ ULONG rc; struct message out; int index; static char raw[] = "abcdefghijklmnopqrstuvwxyz"; static int raw_size = sizeof(raw); /* Make up a message */ for (index = 0; index < sizeof(out.data); index++) out.data[index] = raw[rand() % (raw_size-1)]; if (0 != (rc = q_send(qid, (ULONG *) &out))) fail(rc, "%s q_send(%s)", me, qn); if (0 != (rc = ev_send(tid, ev))) fail(rc, "%s ev_send()", me); bprintf("\t\t\t%s Msg sent to %s, event 0x%08x\n", me, qn, ev);}void tsk1(ULONG me, ULONG him, ULONG l3, ULONG l4){ ULONG rc; int loop, send, qnum; bprintf("\t\t\t%s Task begin\n", (char *) me); for (loop = 0; loop < LOOP_MAX; loop++) { send = 1+(rand() % 4); /* Send up to 4 msgs */ bprintf("\t\t\t%s sending %d message(s)\n", (char *) me, send); while (send-- > 0) { /* Pick a queue, send a message and event */ qnum = 1+(rand() % 3); switch (qnum) { case 1: send_msg(me, qid1, Q1_EV, tid, Q1_NAM); break; case 2: send_msg(me, qid2, Q2_EV, tid, Q2_NAM); break; case 3: send_msg(me, qid3, Q3_EV, tid, Q3_NAM); break; } } /* Delay a while now */ bprintf("\t\t\t%s pausing\n", (char *) me); tm_wkafter(1*TENTH); } if (0 != (rc = ev_send(tid, FINAL_EV))) fail(rc, "%s ev_send(FINAL_EV)", me); bprintf("\t\t\t%s Task end\n", (char *) me); exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -