Информация об изменениях

Сообщение 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 может ВНЕЗАПНО лочиться.
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>}

Не выйдет. size() тоже вообще-то надо внутрь lock засовывать, что делает всю затею бессмысленной.
Можно вместо size() использовать atomic int или что-то подобное, но тоже непригодно для low latency, т.к. doSome может ВНЕЗАПНО лочиться.