libevent2 启用 iocp 的问题

the_venus 2016-02-24 10:20:48

#include <iostream>
#include <event2/event.h>
#include <event2/thread.h>
#include <csignal>


void log_callback(int security, const char* msg)
{
std::cout << "log: security=" << security << ", msg=" << msg;
}

void fatal_callback(int err)
{
std::cout << "fatal: " << err << std::endl;
abort();
}


void event_callback(evutil_socket_t s, short event, void * arg)
{
std::cout << "SIGINT triggered, exit loop" << std::endl;
struct event_base *eb = (struct event_base*)(arg);
if (eb != NULL)
{
event_base_loopexit(eb, NULL);
}
}

int _tmain(int argc, _TCHAR* argv[])
{
event_set_log_callback(log_callback);
event_set_fatal_callback(fatal_callback);
//event_enable_debug_logging(EVENT_DBG_ALL);
event_enable_debug_mode();
evthread_use_windows_threads();

struct event_config *ec = event_config_new();
event_config_set_flag(ec, EVENT_BASE_FLAG_STARTUP_IOCP);
event_config_require_features(ec, EV_FEATURE_ET);

struct event_base *eb = event_base_new_with_config(ec);
if (eb != NULL)
{
struct event *sigint = evsignal_new(eb, SIGINT, event_callback, eb);

event_base_dispatch(eb);

event_base_free(eb);
}
event_config_free(ec);

return 0;


上面这段代码在链接libevent2版本之后,执行event_base_new_with_config(ec)的时候老是返回NULL, log_callback 打印出 no event mechanism available, libevent启用iocp是这么做的呀,请问高手我这段代码哪里出了问题,多谢了
...全文
107 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧