⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsk1.c

📁 经典的psos编程实例源码
💻 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 + -