• Andrii Grynenko's avatar
    AtomicNotificationQueue · 50e9d1bb
    Andrii Grynenko authored
    Summary:
    This is a lock-free replacement for NotificationQueue. Unlike notification queue it supports only one consumer, which allows simplifying the internal structure a lot and avoiding any use of spin locks.
    Another improvement comparing to NotificationQueue is the use of epoll edge-triggered events. This allows completely eliminating read syscals, since we don't need to drain eventfd to stop it from waking up the epoll loop.
    
    Differential Revision: D24297158
    
    fbshipit-source-id: 1f418d861210f6dcad52b4d663f49eb2e8f3ae8c
    50e9d1bb
EventBaseBackendBase.cpp 2.93 KB