在Linux中使用宏中央调度

时间:2010-06-30 07:59:38

标签: macos grand-central-dispatch

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

我假设必须运行一个端口才能使gcc与Apple引入的新语义兼容。

2 个答案:

答案 0 :(得分:14)

差不多一年之后,我在{Untntu Natty using it quite happily。适当的包裹将在Oneiric中出现。

答案 1 :(得分:9)

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

  • 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 port已经完成,所以一定有可能。