I am a bit confused about the difference between epoll and libevent. Libevent is just an encapsulation of epoll.
Since epoll is considered to be thread-safe (e.g. Is epoll thread-safe? Is epoll_ctl() safe to be called simultaneously from multiple threads?), why does libevent become thread-unsafe?
Which part of libevent breaks its thread-safety?