Сообщение Re[7]: у него много обращений на чтение, и очень очень редко от 09.08.2018 15:27
Изменено 09.08.2018 15:28 ·
Re[7]: у него много обращений на чтение, и очень очень редко на запись
Здравствуйте, VVV, Вы писали:
VVV>doSome()
VVV>{
VVV> for(){...}
VVV> if(insertedItems.size()+erasedItems.size() > 0)
VVV> {
VVV> cs.lock();
VVV> //insert or erase to/from subscribers
VVV> cs.unlock();
VVV> }
VVV>}
VVV>[/ccode]
Не выйдет. size() тоже вообще-то надо внутрь lock засовывать, что делает всю затею бессмысленной.
Можно вместо size() использовать atomic int или что-то подобное, но тоже непригодно для low latency, т.к. doSome может ВНЕЗАПНО лочиться.
VVV>doSome()
VVV>{
VVV> for(){...}
VVV> if(insertedItems.size()+erasedItems.size() > 0)
VVV> {
VVV> cs.lock();
VVV> //insert or erase to/from subscribers
VVV> cs.unlock();
VVV> }
VVV>}
VVV>[/ccode]
Не выйдет. size() тоже вообще-то надо внутрь lock засовывать, что делает всю затею бессмысленной.
Можно вместо size() использовать atomic int или что-то подобное, но тоже непригодно для low latency, т.к. doSome может ВНЕЗАПНО лочиться.
Re[7]: у него много обращений на чтение, и очень очень редко
Здравствуйте, VVV, Вы писали:
Не выйдет. size() тоже вообще-то надо внутрь lock засовывать, что делает всю затею бессмысленной.
Можно вместо size() использовать atomic int или что-то подобное, но тоже непригодно для low latency, т.к. doSome может ВНЕЗАПНО лочиться.
VVV>doSome()
VVV>{
VVV> for(){...}
VVV> if(insertedItems.size()+erasedItems.size() > 0)
VVV> {
VVV> cs.lock();
VVV> //insert or erase to/from subscribers
VVV> cs.unlock();
VVV> }
VVV>}
Не выйдет. size() тоже вообще-то надо внутрь lock засовывать, что делает всю затею бессмысленной.
Можно вместо size() использовать atomic int или что-то подобное, но тоже непригодно для low latency, т.к. doSome может ВНЕЗАПНО лочиться.