• Eugene Kosov's avatar
    Lets add another intrusive double linked list! · fd899b3b
    Eugene Kosov authored
    Features:
    * STL-like interface
    * Fast modification: no branches on insertion or deletion
    * Fast iteration: one pointer dereference and one pointer comparison
    * Your class can be a part of several lists
    
    Modeled after std::list<T> but currently has fewer methods (not complete yet)
    
    For even more performance it's possible to customize list with templates so
    it won't have size counter variable or won't NULLify unlinked node.
    
    How existing lists differ?
    
    No existing lists support STL-like interface.
    
    I_List:
    * slower iteration (one more branch on iteration)
    * element can't be a part of two lists simultaneously
    
    I_P_List:
    * slower modification (branches, except for the fastest push_back() case)
    * slower iteration (one more branch on iteration)
    
    UT_LIST_BASE_NODE_T:
    * slower modification (branches)
    
    Three UT_LISTs were replaced: two in fil_system_t and one in dyn_buf_t.
    fd899b3b
fil0fil.cc 163 KB