Re: манипуляция с внутренними структурами Perl5 из Perl?

Stormbringer sbatyr at gmail.com
Thu Apr 7 05:10:15 PDT 2011


За такие фортили вручную на однокристалке начальство по рукам било больно.
ИМХО, идеологически правильно будет разнести sub1, sub2, sub3 и некоторое
ядро по разным потокам (threads) и блокировки будут осуществляться
операционной системой, разблокировки - по получению сигнала через ядро ОС.
Вручную можно влететь на ошибки синхронизации сигналов и их перекрытия

модуль для этого из CPAN http://search.cpan.org/~mlehmann/Coro-5.372/Coro.pm

  use Coro;

.

2011/4/7 Serge <simne at yandex.ua>

> Подскажите (стандартные желательно) модули, позволяющие манипулировать со
> стеком параметров Перл.
> Я хочу сделать чтобы при вызовах некоторой функции-ядра, она могла
> возвращать управление не тому кто ее вызвал а какой-то другой функции.
>
> Например, есть функции sub1, sub2, sub3 и некоторое ядро. В начале работы
> ядро вызвало sub1; sub1 вызвала ядро на предмет сообщений, но ядру пока
> нечего ответить - ядро снимает со стека параметры от sub1 и снимает адрес
> возврата sub1 и вызывает sub2, итд.
> Получается что таким образом что sub1, sub2, sub3 находятся в некотором
> состоянии ожидания сообщения.
>
> Допустим, пришло сообщение для sub2 - ядро должно выложить на стек
> параметров какие-то возвращаемые sub2 значения и адрес возврата в sub2 и
> выполнить return.
>
> Я понимаю что это достаточно легко сделать написав на Си XS-расширение, но
> я хочу сделать чтобы код был максимально легко портируемым, без компиляции,
> лучше всего стандартным модулем.
>
> Спасибо.
>



-- 
С уважением, Батыр Семен
_______________________________________
There are more possybilties to do this ...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/kiev-pm/attachments/20110407/890c7acf/attachment.html>


More information about the Kiev-pm mailing list