Project

General

Profile

Actions

Bug #300

open

Атомарность работы со ссылками

Added by Sergey Groshev over 14 years ago. Updated almost 14 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
Start date:
07/09/2010
Due date:
% Done:

0%

Estimated time:
Detected in build:
2.8.304-beta-100706
Platform:
Published in build:

Description

В ходе работы над проектом Distributed FSM обнаружены множественные проблемы с неатомарностью операций r, destroy и detach_Object. Для обхождения этих ошибок пока что используется клонирование объектов (чтобы разные потоки работали с разными объектами) и семафоры.

Необходимо продумать и реализовать механизмы (возможно, разные для разных платформ), обеспечивающие атомарность в многопоточном режиме с приемлемой производительностью. Используемый на данный момент механизм threadlocal не помогает. Использование семафоров для каждой такой операции будет, предположительно, слишком неэффективным.

Потенциально полезные средства:
  • atomic increment/decrement
  • atomic get & set, compare & set
  • использование одного выделенного потока для сборки мусора (в первую очередь для поиска графов ссылающихся друг на друга недостижимых объектов и уничтожения их)
  • ??? Смотрим, например, Java-пакеты java.util.concurrent и его подпакеты
Actions

Also available in: Atom PDF