Skip to content
Snippets Groups Projects
Forked from Social Cognitive Systems / ipaaca
Source project has a limited visibility.
  • Ramin Yaghoubzadeh Torky's avatar
    219bc821
    cpp: Fixed successive batch updates on same top level key [ATTENTION] · 219bc821
    Ramin Yaghoubzadeh Torky authored
    Read access in locked payloads is performed on queued operations
    before searching the old database. Threads other than the locking
    thread consistently read the old information.
    
    On POSIX, default Lock now also uses boost::thread (instead of pthread)
    pthread linkage is still present for legacy wrapping.
    
    ATTENTION: unlocked payload writing is (by design) not thread-safe
    (won't crash but data might be inconsistent). Please use Locker armors
    around all code that might modify a payload in more than one thread.
    ---> #1: Always use Locker in IU handlers that write to existing IUs!!
    219bc821
    History
    cpp: Fixed successive batch updates on same top level key [ATTENTION]
    Ramin Yaghoubzadeh Torky authored
    Read access in locked payloads is performed on queued operations
    before searching the old database. Threads other than the locking
    thread consistently read the old information.
    
    On POSIX, default Lock now also uses boost::thread (instead of pthread)
    pthread linkage is still present for legacy wrapping.
    
    ATTENTION: unlocked payload writing is (by design) not thread-safe
    (won't crash but data might be inconsistent). Please use Locker armors
    around all code that might modify a payload in more than one thread.
    ---> #1: Always use Locker in IU handlers that write to existing IUs!!