while ()
{
SearchAcceptListen2(p_ev_arg->listen_fd,,&notify_event,base);
event_base_loop(base, EVLOOP_NONBLOCK);
}

其中调用函数的实现是

void SearchAcceptListen2(int fd, short what, void *arg, struct event_base *p_base)
{
struct event *p_ev = (struct event *)arg;
char log_buff[] = {};
struct sockaddr_in sin;
socklen_t len = sizeof(struct sockaddr_in);
int accept_fd = ; //accept lock
pthread_mutex_lock(&g_search_port_lock);
accept_fd = accept(fd, (struct sockaddr*)&sin, &len);
pthread_mutex_unlock(&g_search_port_lock); if (accept_fd > )
{
int iret = ;
if((iret = fcntl(accept_fd, F_SETFL, O_NONBLOCK)) < )
{
snprintf(log_buff,sizeof(log_buff),"%s fd=%d: fcntl nonblocking error:%d", __func__, accept_fd, iret);
g_log.write_record(log_buff);
return;
} struct interface_data *p_read_it = it_pool_get();
// add a read event for receive data
p_read_it->sd = accept_fd;
gettimeofday(&p_read_it->l_time[],);
reg_add_event(&(p_read_it->ev),accept_fd,EV_READ,RecvData,p_read_it,p_base,&tv_recv_timeout);
snprintf(log_buff,sizeof(log_buff),"Thread[%x] process thread read new client fd[%d]", (int)pthread_self(), accept_fd);
g_log.write_record(log_buff); }
else
{
// snprintf(log_buff,sizeof(log_buff),"%s[%d]\t%s:accept error return:%d, errno:%d", __FILE__,__LINE__,__func__,accept_fd,errno);
// g_log.write_record(log_buff); } }

libevent显式调用事件处理的更多相关文章

  1. C++构造函数详解及显式调用构造函数

    来源:http://www.cnblogs.com/xkfz007/archive/2012/05/11/2496447.html       c++类的构造函数详解                  ...

  2. C++中构造函数详解及显式调用构造函数

    C++构造函数详解及显式调用构造函数                                         c++类的构造函数详解                        一. 构造函 ...

  3. C++不能显式调用构造函数,会生成匿名对象,这点与Java完全不一样!

    Java可以直接调用同名构造函数,仅仅起初始化的功能,并不构造新的对象,但是C++里面没有.看一下这段代码: class A { public: A() { printf("A() \n&q ...

  4. linux下动态链接库(.so)的显式调用和隐式调用

    进入主题前,先看看两点预备知识. 一.显式调用和隐式调用的区别 我们知道,动态库相比静态库的区别是:静态库是编译时就加载到可执行文件中的,而动态库是在程序运行时完成加载的,所以使用动态库的程序的体积要 ...

  5. C++如何显式调用常成员函数

    C++的常成员函数与同名成员函数重载时,该如何显式调用常成员函数? 具体的一个小例子: #include <iostream> using namespace std; class C1 ...

  6. 循环引擎 greenlet 没有显式调度的微线程,换言之 协程

    小结: 1. micro-thread with no implicit scheduling; coroutines, in other words. 没有显式调度的微线程,换言之 协程 2. 一个 ...

  7. 定位new表达式与显式调用析构函数

    C++的核心理念之一是RAII,Resource Acquisition Is Initialization,资源获取即初始化.资源有很多种,内存.互斥锁.文件.套接字等:RAII可以用来实现一种与作 ...

  8. based on Greenlets (via Eventlet and Gevent) fork 孙子worker 比较 gevent不是异步 协程原理 占位符 placeholder (Future, Promise, Deferred) 循环引擎 greenlet 没有显式调度的微线程,换言之 协程

    gevent GitHub - gevent/gevent: Coroutine-based concurrency library for Python https://github.com/gev ...

  9. simplest_dll 最简dll的创建与隐式调用(显式调用太麻烦,个人不建议使用)

    首先需要有个头文件,名字随便写  假设test.h //test.h #ifndef _TEST_H #define _TEST_H #ifdef TEST_EXPORTS //通过宏定义控制是输入还 ...

随机推荐

  1. MySql基本数据类型及约束

    1. 常用的数据类型(data_type) 字符串类型 CHAR(n) : 固定长度 VARCHAR(n) : 可变长度 NCHAR(n) : 使用utf8存储,固定长度 NVARCHAR(n) : ...

  2. 【php学习-4】

    var_1=11; print $var1->var_1.$var2->var_1; ?> print_Color(); ?> y=self::$x; # code... } ...

  3. vue服务端渲染提取css

    vue服务端渲染,提取css单独打包的好处就不说了,在这里主要说的是抽取css的方法 要从 *.vue 文件中提取 CSS,可以使用 vue-loader 的 extractCSS 选项(需要 vue ...

  4. 字符编码 ASCII unicode UTF-8

    字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(b ...

  5. 嵌入式Linux系统移植(二)——交叉编译工具集

    常用工具:readelf.size.nm.strip.strings.objdump.objcopy.addr2line readelf:读可执行文件的elf头 ELF Header: Magic: ...

  6. AIM Tech Round 5C. Rectangles 思维

    C. Rectangles time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  7. Redis的自从复制(Master/Slave)

    一.是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 二.能干嘛? 1.读写分离 2.容 ...

  8. MongoDB从环境搭建到代码编程(Window 环境)

    本人开发环境: window Server 2008 , 64位系统 服务端 MongoDB下载地址:http://www.mongodb.org/downloads  (本人己下好的在百度网盘 : ...

  9. 关于PHP性能提升踩过的一些坑

        性能这个东西,在网站规模到达一定程度后,会是一个永恒的主题.关于这方面,本人有一些拙见,现在拿出来,大家一起探讨下.     1.编码过程中,传递参数时,尽量少使用‘引用传参’.这是一个巨坑啊 ...

  10. LeetCode:12. Integer to Roman(Medium)

    1. 原题链接 https://leetcode.com/problems/integer-to-roman/description/ 2. 题目要求 (1) 将整数转换成罗马数字: (2) 整数的范 ...