1 个不稳定版本
0.1.0 | 2021年1月1日 |
---|
#759 在 并发
每月下载量 98 次
19KB
247 行
ulock-sys
Rust 对 Darwin(例如 macOS 的/iOS 的)非完全公开的 ulock API 的绑定,该 API 提供类似 futex 的功能。
一般来说,买者自负。建议您阅读源代码和头文件,以及可能的话,浏览 libdispatch 或 libc++ 的使用。
特别是,除了头文件中包含的文档外,其他文档非常稀少。
支持
此 API 在 darwin 16+(macOS 10.12+、iOS 10.0+、tvOS 10.0+、watchOS 3.0+、catalyst 13.0+)上可用,尽管某些部分是 darwin 19+(macOS 10.15+、iOS 13.0+,待定:找出其他部分)。darwin 19+ 上的部分在 darwin19
模块中(只是添加了一些额外的常量,所以不值得设置功能门控)。
也就是说,它得到了很好的支持,95% 以上的 macOS 和 iOS 用户都会使用它(据 statcounter 于 2021 年 1 月的数据)。
话虽如此,它们不是公开的,谁知道未来会如何,也许苹果会移除它们。但可能不会——它们也被 libc++ 使用,所以如果它们消失了,静态链接 libc++ 的代码会突然出错,但...谁知道呢,也许苹果会这样做。
“弱”链接,cargo 功能
因此(以及为了支持旧版本),如果您启用 experimental-weak
功能,我们将公开一个模块 weak
,该模块模拟弱链接并通过 dlsym
访问函数。
请注意,在默认情况下,在 aarch64 darwin(例如“苹果硅”,ARM64 MacBook 等设备)上,即使启用了“实验性弱”功能,我们也不会使用 dlsym
,除非还指定了“weak-aarch64-macos”。这是因为这些机器上的所有操作系统都支持该 API。这可以通过启用 weak-aarch64-macos
功能来覆盖。
依赖项
~8KB