Smalltalk Pharo 4 FFI异步回调

Smalltalk Pharo 4 FFI异步回调,smalltalk,ffi,pharo,Smalltalk,Ffi,Pharo,在Pharo4中处理异步FFI回调有哪些选项(如果有)?所谓异步,我的意思是,在设置回调的FFI函数完成并返回Smalltalk后,外语库会调用回调 映像中的NativeBoost回调示例是同步的(回调发生在FFI函数执行时),它是否也适用于异步回调 或者,也许一个较老的外国金融机构机制将能够处理这种情况 还有CogMT,如果我理解的话,它可以处理这个案件,但也要多得多。可以用这个虚拟机运行Pharo4吗 现在在法罗没有办法做到这一点:( CogMT是实验性的,目前还不能用于实际,我们正在开发T

在Pharo4中处理异步FFI回调有哪些选项(如果有)?所谓异步,我的意思是,在设置回调的FFI函数完成并返回Smalltalk后,外语库会调用回调

映像中的NativeBoost回调示例是同步的(回调发生在FFI函数执行时),它是否也适用于异步回调

或者,也许一个较老的外国金融机构机制将能够处理这种情况


还有CogMT,如果我理解的话,它可以处理这个案件,但也要多得多。可以用这个虚拟机运行Pharo4吗

现在在法罗没有办法做到这一点:(


CogMT是实验性的,目前还不能用于实际,我们正在开发ThreadedFFI,这是您所要求的,但它要到年底才能准备好(希望如此)。

目前所有的工作都是迁移到Spur VM(和ARM Cog)。这会更快,并提供固定对象(接近64位图像)。它提供了新的可能性,但与现有的机制并不完全兼容。此外,NativeBoost目前是x86专用的,需要对x64和ARM进行更改。

你确定吗?我想我正在LibGit中使用异步回调…:)普通的NativeBoost回调。我相信你不会:)发生这种情况的唯一机会是,如果libgit单独使用线程(但是我们会有一个安全问题,所以我不这么认为),那么我想你是对的。回调函数总是在另一个函数执行期间调用(而不是在之前或之后)。虽然libgit2确实使用线程,但它们是工作线程,对调用方是透明的。因此,Spur VM和ARM Cog计划用于Pharo 5,但它们将提供与NativeBoost API兼容的FFI?在Pharo 4图像中是否有依赖于NativeBoost的内容?i、 e.Pharo 4能否与不支持NativeBoost的VM一起使用?ARM Cog是ARM Spur的一个步骤。此外,已经做出了一些努力来实现跨体系结构的NativeBoost风格FFI(VirtualCPU)。文件服务器提供了一个实验性的spur映像