2012-04-24 35 views
0

我写一个工具,它派生多个子进程。事实上有三个子级进程来加速整个逻辑/进程。份额perl的诅咒在多个子UI对象变量处理

要显示在终端的输出我所选择的诅咒:: UI。 curses ui对象/小部件在父/子关系的每个级别上创建,并在子级进程的最后一级进行操作。这种多级别的子进程似乎会导致curses显示问题。

我认为这将是稳定的,如果我只是共用一个在所有子/父进程诅咒UI对象。

为了实现这种共享,我想使用存储/共享的模块,但没有能够得到它运行,由于像这样的错误:

quicode子{││ 退出; │ │}引起的一个错误: '退出' 在(EVAL 99)线2由操作掩码被困在my_curser.pl线147│ 代码子{──────────────── ────────────────────────────────────────────────── ────────────────────────────────────────────────── ────────────────────────────────────────────────── ────────────┘ exit; }引起的一个错误: '退出' 在(EVAL 99)线2由操作掩码被困在my_curser.pl线147 │ode子{│ │出口;

是否有可能跨越复式进程共享诅咒UI对象?

回答

0

curses依赖于C和这是不连选自C进程之间可靠地共享终端或终端仿真的状态,并且不Perl的包装如UI::Curses可见。 (终端具有一个“当前位置”/光标位置;考虑如果不同的子过程试图同时更新显示的不同部分中的小部件,会发生什么情况)。因此,您无法在子过程之间共享这些小部件。

通常,更好的设计是将线程或进程专用于UI,并将处理的其他方面分配给其他线程/进程。