+ ret = io_masterfd >= 0;
+ if (ret) library_initialized = true;
+ return ret;
+}
+#endif
+
+
+bool
+io_library_init(unsigned int eventsize)
+{
+ if (library_initialized)
+ return true;
+#ifdef IO_USE_SELECT
+#ifndef FD_SETSIZE
+ Log(LOG_WARNING,
+ "FD_SETSIZE undefined, don't know how many descriptors select() can handle on your platform ...");
+#else
+ if (eventsize >= FD_SETSIZE)
+ eventsize = FD_SETSIZE - 1;
+#endif /* FD_SETSIZE */
+#endif /* IO_USE_SELECT */
+ if ((eventsize > 0) && !array_alloc(&io_events, sizeof(io_event), (size_t)eventsize))
+ eventsize = 0;
+#ifdef IO_USE_EPOLL
+ return io_library_init_epoll(eventsize);
+#endif
+#ifdef IO_USE_KQUEUE
+ return io_library_init_kqueue(eventsize);
+#endif
+#ifdef IO_USE_POLL
+ return io_library_init_poll(eventsize);
+#endif
+#ifdef IO_USE_SELECT
+ return io_library_init_select(eventsize);