• Hayk Martirosyan authored
     
    Browse File »
  • The event loop (now libev) now runs in a separate detached thread,
    which is abstracted away from the user, who only calls a nonblocking
    .start() method. This thread loops continously, alternating telling
    Redis about asynchronous commands ready to send, and running one
    iteration of the event loop, where all pending events are taken
    care of. This greatly simplifies the user code.
    
    Additionally, some clever tricker is implemented now to handle
    memory management well with the templated command types. The
    difficulty comes from the fact that we pass redis a void pointer
    only, and must retreive everything from that (so, we can't use
    shared_ptr for the whole thing). Thus, we use maps of void pointers
    to their templated data structure pointers, where the memory address
    of the pointer serves as the key.
    Hayk Martirosyan authored
     
    Browse File »