OberonCore https://forum.oberoncore.ru/ |
|
Механизм Omnicast, Broadcast и др. https://forum.oberoncore.ru/viewtopic.php?f=23&t=3336 |
Страница 1 из 1 |
Автор: | Александр Ильин [ Пятница, 11 Март, 2011 18:25 ] |
Заголовок сообщения: | Механизм Omnicast, Broadcast и др. |
Выделено: viewtopic.php?p=61346#p61346 Иван Кузьмицкий писал(а): Omnicast перебирает все окна, начиная с dir.First() и у каждого секвенсера окна вызывает хэндлер. В этом хэндлере, секвенсер окна (внимание!) опять перебирает все окна, начиная с dir.First и вызывает хэндлер броадкаста у окна - только в том случае, если окно имеет такой же секвенсер. Зачем два прохода по одному и тому же списку? Из описания не понятно, почему Omnicast не вызывает сразу хэндлер броадкаста.
|
Автор: | Info21 [ Пятница, 11 Март, 2011 18:55 ] |
Заголовок сообщения: | Re: Обход Store'ов из одного Domain'а |
Иван Кузьмицкий писал(а): проявляется сборка мусора как архитектурный фактор, что ли... Это да, централизованная сборка мусора -- архитектурный фактор.Только не понятно, что там с секвенсерами -- смысл какой. |
Автор: | Иван Кузьмицкий [ Пятница, 11 Март, 2011 19:04 ] |
Заголовок сообщения: | Re: Обход Store'ов из одного Domain'а |
Александр Ильин писал(а): Зачем два прохода по одному и тому же списку? Из описания не понятно, почему Omnicast не вызывает сразу хэндлер броадкаста. Меня смутили вот эти комментарии:Цитата: PROCEDURE (s: StdSequencer) Handle (VAR msg: ANYREC); и(* send message to all windows attached to s *) Цитата: Window* = POINTER TO ABSTRACT RECORD Судя по ним, между окном и секвенсером отношение многие-к-одному. Стало быть, чтоб не хранить списки окон у секвенсера и не блокировать сборку мусора, нужны дополнительные проходы.... link-: Window; (* ring of windows with same sequencer *) Но чем больше я смотрю на PROCEDURE (h: Hook) Omnicast и PROCEDURE (s: StdSequencer) Handle, тем меньше мне понятно реализованное в них. В каркасе вызов w.BroadcastViewMsg делается только из секвенсера и только вот таким "извращённым" способом. Не понимаю. Может быть, это уже оффтоп. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |