在Linux中使用宏中央调度

pra*_*bhu 15 macos grand-central-dispatch

这是可能的,因为Apple开源代码(libdispatch?)我对如何使用它感到困惑.这是一个具有任何应用程序可以使用的API的库,还是内置于Mac OS X中的操作系统功能?可以单独构建"for"Mac和iPhone(使用iOS 4)的应用程序吗?

我假设必须运行一个端口,以便gcc与Apple引入的新语义兼容.

Chr*_*rth 14

差不多一年之后,我在Ubuntu Natty上非常开心地使用它.Oneiric正在推出适当的套餐.


Jer*_*myP 9

阅读Ars Technica概述后,似乎存在一些挑战

  • GCD广泛使用块(C语言的近似闭包的Apple扩展),这意味着您的编译器需要支持块.标准版本的gcc不支持块,因此您必须将Apple的更改移植到Linux gcc或使用clang/llvm.
  • Mac OS X版本的GCD涉及内核中的一些代码.显然,如果Linux需要内核更改来支持GCD,那么这是一项重要的工作.但是,似乎只有用户空间端口是可能的.
  • GCD根据Apache许可证授权.显然,此许可证与GPL v2不兼容.因此,您不能在GPL v2下分发的任何应用程序中使用GCD.GPL v3虽然可以,但是根据GPL v2"或更高版本"许可的应用程序是可以的.

说了这么多,FreeBSD端口已经完成,所以一定有可能.

  • 无论如何我会切换到Clang.它的错误更方便.:) (5认同)