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

📄 task.h

📁 P2P模拟器
💻 H
字号:
/* Copyright (c) 2005 Russ Cox, MIT; see COPYRIGHT */#ifndef _TASK_H_#define _TASK_H_ 1#ifdef __cplusplusextern "C" {#endif#include <stdarg.h>#include <unistd.h>	/* prototype yield before we re-#define it *//* * basic procs and threads */typedef struct Task Task;#define yield taskyieldint		anyready(void);int		taskcreate(void (*f)(void *arg), void *arg, unsigned int stacksize);void		taskexit(int);void		taskexitall(int);void		taskmain(int argc, char *argv[]);int		taskyield(void);void**	taskdata(void);void		needstack(int);unsigned long		taskrendezvous(unsigned long, unsigned long);unsigned int		taskid(void);/* * channel communication */typedef struct Alt Alt;typedef struct Altarray Altarray;typedef struct Channel Channel;enum{	CHANEND,	CHANSND,	CHANRCV,	CHANNOP,	CHANNOBLK,};struct Alt{	Channel		*c;	void		*v;	unsigned int		op;	Task		*task;	Alt			*xalt;};struct Altarray{	Alt			**a;	unsigned int		n;	unsigned int		m;};struct Channel{	unsigned int			bufsize;	unsigned int			elemsize;	unsigned char		*buf;	unsigned int			nbuf;	unsigned int			off;	Altarray	asend;	Altarray	arecv;	char			*name;};#define	alt		chanalt#define	nbrecv	channbrecv#define	nbrecvp	channbrecvp#define	nbrecvul	channbrecvul#define	nbsend	channbsend#define	nbsendp	channbsendp#define	nbsendul	channbsendul#define	recv		chanrecv#define	recvp	chanrecvp#define	recvul	chanrecvul#define	send		chansend#define	sendp	chansendp#define	sendul	chansendulint		chanalt(Alt *alts);Channel*	chancreate(int elemsize, int elemcnt);void		chanfree(Channel *c);int		chaninit(Channel *c, int elemsize, int elemcnt);int		channbrecv(Channel *c, void *v);void*		channbrecvp(Channel *c);unsigned long		channbrecvul(Channel *c);int		channbsend(Channel *c, void *v);int		channbsendp(Channel *c, void *v);int		channbsendul(Channel *c, unsigned long v);int		chanrecv(Channel *c, void *v);void*		chanrecvp(Channel *c);unsigned long		chanrecvul(Channel *c);int		chansend(Channel *c, void *v);int		chansendp(Channel *c, void *v);int		chansendul(Channel *c, unsigned long v);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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