-bool
-io_library_init(unsigned int eventsize)
-{
-#if defined(IO_USE_EPOLL) || defined(IO_USE_KQUEUE)
- bool ret;
-#endif
-#ifdef IO_USE_EPOLL
- int ecreate_hint = (int)eventsize;
- if (ecreate_hint <= 0)
- ecreate_hint = 128;
-#endif
- if (library_initialized)
- return true;
-
-#ifdef IO_USE_SELECT
-#ifdef FD_SETSIZE
- if (eventsize >= FD_SETSIZE)
- eventsize = FD_SETSIZE - 1;
-#endif
-#endif
- if ((eventsize > 0) && !array_alloc(&io_events, sizeof(io_event), (size_t)eventsize))
- eventsize = 0;
-
-#ifdef IO_USE_EPOLL
- io_masterfd = epoll_create(ecreate_hint);
- Log(LOG_INFO,
- "IO subsystem: epoll (hint size %d, initial maxfd %u, masterfd %d).",
- ecreate_hint, eventsize, io_masterfd);
- ret = io_masterfd >= 0;
- if (ret) library_initialized = true;
-
- return ret;
-#endif