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

📄 atnotify.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#define	NFN	33static	int	(*onnot[NFN])(void*, char*);static	Lock	onnotlock;staticvoidnotifier(void *v, char *s){	int i;	for(i=0; i<NFN; i++)		if(onnot[i] && ((*onnot[i])(v, s))){			noted(NCONT);			return;		}	noted(NDFLT);}intatnotify(int (*f)(void*, char*), int in){	int i, n, ret;	static int init;	if(!init){		notify(notifier);		init = 1;		/* assign = */	}	ret = 0;	lock(&onnotlock);	if(in){		for(i=0; i<NFN; i++)			if(onnot[i] == 0) {				onnot[i] = f;				ret = 1;				break;			}	}else{		n = 0;		for(i=0; i<NFN; i++)			if(onnot[i]){				if(ret==0 && onnot[i]==f){					onnot[i] = 0;					ret = 1;				}else					n++;			}		if(n == 0){			init = 0;			notify(0);		}	}	unlock(&onnotlock);	return ret;}

⌨️ 快捷键说明

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