我正在将一个C++项目移植到iOS上,以在iPhone和iPad上使用。这个项目广泛使用了Boost.Coroutine库。Boost.Coroutine没有针对iPhone的ARMv6 / ARMv7指令集实现。
是否有其他协程库可以在iOS上运行?
如果没有,是否有可能在ARM上编写协程行为?我可以看到几种潜在的方法:
- 直接编写汇编指令来执行堆栈操作。我对汇编不是很熟悉,而且我担心ARM架构可能不包括复制和粘贴堆栈所需的指令,或者手动移动堆栈指针。
- 使用类似于pthread或Win32纤程的东西编写协程。我不确定是否有类似于此可用于iOS的东西。
- 在线程之上实现协程,甚至是Boost.Coroutine本身。这似乎最有可能起作用,但肯定会有性能缺陷。
注意:Unity在iOS上支持C#中的协程;我不确定这是否仅限于典型协程行为的较小子集。如果没有,这是否意味着Unity有解决方案?