1

我正在使用文件系统更改监视器,并在Factor 手册中输入了这个示例

: watch-loop ( monitor -- )
    dup next-change path>> print flush watch-loop ;

: watch-directory ( path -- )
    [ t [ watch-loop ] with-monitor ] with-monitors ;

然后用

"/tmp" watch-directory

这很好用,文件系统更改开始出现。但我无法阻止它。Ctrl-C似乎在侦听器中不起作用,它甚至在点击“重新启动侦听器”按钮时幸存下来。点击监听器的“结束”按钮是终止监听的唯一方法吗?我知道监视器是由with-monitor组合器处理的,所以也许它只是watch-loop递归的?!

4

1 回答 1

2

我偶然发现了最近关于factor-talk的帖子(Factor 邮件列表),我正在这里整理我从那里收集到的内容。如果有人有更正或修正,请编辑。

  1. 在命令行上运行侦听器,而不是在 GUI 中:factor -run=listener. 这个应该对 Ctrl-C 做出反应。这会将您带到一个调试器外壳,您可以在其中键入t以取消异常。这里的一个问题似乎是 Ctrl-C 可能被捕获在代码的子线程中(传递地),从而中断了错误的事情。

  2. 在 GUI 中,启动第二个侦听器。那么你也能

    2.1。挂起第一个运行递归词的侦听器。(如何?)

    2.1。注册键盘挂钩的建议似乎不起作用,因为控制键未转发给侦听器

于 2015-11-11T16:20:58.250 回答