AIO_tcp.c
如果希望进行协程操作,使用set_yield()设置yield函数。
很容易把这东西改写成C++。
【 在 ylh1969 的大作中提到: 】
: 这个函数就是C环境下,支持非协程环境和协程环境的,就是socket的读函数,写函数是类似的。
: //timeout for second
: int RecvNet(int socket,char *buf,int n,int timeout)
: ...................
/**********************************************
* @(#) SDBC 7.1 TCP RECV/SEND Tools *
* to suport coroutine
**********************************************/
#include <sys/socket.h>
#include <unistd.h>
#include <fcntl.h>
#include <sc.h>
#ifndef MIN
#define MIN(a,b) ((a)<(b))?(a):(b)
#endif
static T_YIELD yield=NULL;//缺省是非协程的,同步的。
T_YIELD get_yield()
{
return yield;
}
T_YIELD set_yield(T_YIELD new_yield)
{
T_YIELD oldyield=yield;
yield=new_yield;
return oldyield;
}
--
修改:ylh1969 FROM 221.218.62.*
FROM 221.218.62.*