Я работаю над относительно простым приложением для iPhone, которое имеет многооборотный таймер с рядом настроек, таких как количество раундов и длина раунда. Мы разрешаем обновление определенных настроек во время работы таймера, что означает, что таймер может считывать данные из той же памяти, в которой записываются настройки. Не существует критических участков кода, в которых одновременно будут выполняться несколько потоков, но код из настроек может пытаться записать память, из которой читает таймер.
В простом примере, скажем, мы глобальная переменная foo и существует метод NSTimer, который выглядит следующим образом:
- (Недействительными) timerTick
{
NSString * x = foo;
}
затем в коде настроек мы делаем это во время работы таймера:
foo = @ "test";
Будет ли этого достаточно, чтобы сделать foo атомарным в этом приложении, или нам нужна какая-то схема блокировки?
Спасибо.