lock_pthread.c

来自「关于linux 网络编程的一些代码 关于linux 网络编程的一些代码」· C语言 代码 · 共 38 行

C
38
字号
/* include my_lock_init */#include	"unpthread.h"#include	<sys/mman.h>static pthread_mutex_t	*mptr;	/* actual mutex will be in shared memory */voidmy_lock_init(char *pathname){	int		fd;	pthread_mutexattr_t	mattr;	fd = Open("/dev/zero", O_RDWR, 0);	mptr = Mmap(0, sizeof(pthread_mutex_t), PROT_READ | PROT_WRITE,				MAP_SHARED, fd, 0);	Close(fd);	Pthread_mutexattr_init(&mattr);	Pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED);	Pthread_mutex_init(mptr, &mattr);}/* end my_lock_init *//* include my_lock_wait */voidmy_lock_wait(){	Pthread_mutex_lock(mptr);}voidmy_lock_release(){	Pthread_mutex_unlock(mptr);}/* end my_lock_wait */

⌨️ 快捷键说明

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