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

📄 rwlock.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "u.h"#include "lib.h"#include "dat.h"#include "fns.h"#include "error.h"voidrlock(RWlock *l){	qlock(&l->x);		/* wait here for writers and exclusion */	lock(&l->lk);	l->readers++;	canqlock(&l->k);	/* block writers if we are the first reader */	unlock(&l->lk);	qunlock(&l->x);}voidrunlock(RWlock *l){	lock(&l->lk);	if(--l->readers == 0)	/* last reader out allows writers */		qunlock(&l->k);	unlock(&l->lk);}voidwlock(RWlock *l){	qlock(&l->x);		/* wait here for writers and exclusion */	qlock(&l->k);		/* wait here for last reader */}voidwunlock(RWlock *l){	qunlock(&l->k);	qunlock(&l->x);}

⌨️ 快捷键说明

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