tprimes.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 59 行

C
59
字号
#include <u.h>#include <libc.h>#include <thread.h>int quiet;int goal;int buffer;int (*fn)(void(*)(void*), void*, uint) = threadcreate;voidprimethread(void *arg){	Channel *c, *nc;	int p, i;	c = arg;	p = recvul(c);	if(p > goal)		threadexitsall(nil);	if(!quiet)		print("%d\n", p);	nc = chancreate(sizeof(ulong), buffer);	(*fn)(primethread, nc, 1024);	for(;;){		i = recvul(c);		if(i%p)			sendul(nc, i);	}}voidthreadmain(int argc, char **argv){	int i;	Channel *c;	ARGBEGIN{	case 'q':		quiet = 1;		break;	case 'b':		buffer = atoi(ARGF());		break;	case 'p':		fn=proccreate;		break;	}ARGEND	if(argc>0)		goal = atoi(argv[0]);	else		goal = 100;	c = chancreate(sizeof(ulong), buffer);	threadcreate(primethread, c, 1024);	for(i=2;; i++)		sendul(c, i);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?