Ada_Ru форум

Обсуждение языка Ада

Re: [ada_ru] Lock-free list

Оставить новое сообщение

Сообщения

kazakov1961
Re: [ada_ru] Lock-free list
2009-07-17 08:08:15

On Fri, 17 Jul 2009 14:31:01 +0700, you wrote:

 

17.07.09, Dmitry A. Kazakov<alt@...> написал(а):

On Thu, 16 Jul 2009 23:17:47 +0400, you wrote:

 

Я в свое время обкатывал идею как на Аде сделать lock-free "exchange" (надо как для списков, так и счетчиков ссылок), при этом не прибегая к машинным инструкциям (как оно обычно делается в литературе), но ничего подходящего не придумал. Если кто знает, интересно было бы обсудить.

 

сразу подготовить вторую копию готового элемента, потом его резко подменить за 1 операцию(то есть заместить ссылку на другой уже

свопированный элемент)

 

Обмен в Аде нельзя сделать за одну инструкцию, т.к.

 

1. Это синтаксически несколько операторов в Аде

2. Ада нигде не указывает сколько инструкций и т.п. на что приходится (есть только pragma Atomic)

3. Единственность инструкции не гарантирует исключения даже на одноядерном процессоре (VAX, например имел прерывания инструкций)

 

и еще, голого обмена недостаточно. Надо еще каждому участнику знать, кто победил в "схватке".

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти