我可以在邮件列表中问这个问题,但这样答案将存档给后人。
我似乎记得在Racket中有一组原语允许在进程级别共享资源。例如,假设有一个(非Racket)共享库,其初始化产生一个用于与之通信的唯一令牌(糟糕的是,我知道)。与需要访问它的所有线程分享这个的最佳方法是什么?
非常感谢!
编辑:显然,我在解释自己方面做得非常糟糕。这里的基本问题是我有一个在初始时运行的DrRacket工具,以及在用户的事件空间中运行的用户线程,而挑战在于将一个值传递给另一个。一个明显但怪诞的方式是改变" run"所有DrRacket程序的按钮。另一种方式是......好吧,也许正确的问题是,模块的所有实例化是否都可以轻松共享可变框。
答案 0 :(得分:2)
您可能会想到scheme_register_process_global
。例如,它用于避免多次初始化OpenSSL库;请参阅文件末尾附近的openssl/mzssl.rkt
。