Ivan Levashew wrote:
sve <pyfqrf <at> hotmail.com> writes:
> требования могут быть разные, а подсчет ссылок не
> всегда является разумным
> выходом. например он нехорошо ведет себя в smp -
> необходимы локи, что очень
> медленно или явные барьеры (memory barriers) чего в Ada нет.
В COM счётчик ссылок делается через InterlockedIncrement и
InterlockedDecrement, в которых самая важная часть —
одна инструкция с префиксом LOCK. В Ada это вообще
можно инлайнить.
Подсчёт ссылок используется во внутренних механизмах Qt и PolyORB. Причём Qt использует именно ассемблерные вставки для выполнения атомарных операций, а PolyORB использует мутексы. Как то раз я задавал вопрос разработчикам PolyORB почему бы не делать то же самое. На что получил ответ, что это черезвычайно платформозависимое решение.
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти