Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 30.09.2011, 21:08
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Добрый деньХочу сделать такую штуку на QAtomicКодC++ (Qt)QAtomicInt state;void AcquireRead( void ){while (true) { if (state >= 1024) { // старший бит взведен - данные недоступны DoNothing(); // холостой ход continue; // крутимся в while (рано или поздно др. нитка сбросит старший бит) } state.fetchAndAddAcquire(1); // атомарно увеличиваем счетчик (еще 1 нитка имеет доступ к данным) break; // доступ получен}}Очевидно что это не будет работать правильно, др. нитка может вклиниться и установить старший бит уже после того как он прочитанКодC++ (Qt) if (state >= 1024)
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Полное зависание с морганием caps lock и scroll lock Guest Новый архив 3 0 30.09.2011 04:34
отвалилась Num Lock Guest Новый архив 2 0 28.09.2011 08:11
зависание при запуске с синхронным морганием caps lock и scroll lock Guest Новые вопросы и ответы 3 0 27.09.2011 15:10



© www.otvetnemail.ru - Форум вопросов и ответов.