5 个版本
使用旧的 Rust 2015
0.1.4 | 2015 年 8 月 9 日 |
---|---|
0.1.3 | 2015 年 8 月 6 日 |
0.1.2 | 2015 年 8 月 5 日 |
0.1.1 | 2015 年 8 月 5 日 |
0.1.0 | 2015 年 8 月 5 日 |
23 在 #semaphore
79 每月下载
用于 3 crates
19KB
425 行
sema
一个简单的信号量。
用法
将此添加到您的 Cargo.toml
[dependencies]
sema = "*"
并将其添加到您的 crate 根目录
extern crate sema;
概述
Sema 提供了一个安全的 Semaphore
实现。
实现
Sema 在所有支持的平台上具有相同的语义,但由于平台差异,它们的实现不同。
Linux
在 Linux 上,Semaphore
使用 futex 实现。它们基于当前的 glibc sem_t
实现,并具有相同的语义。
OS X
OS X 不实现匿名信号量,但它实现了命名信号量,它们的语义与匿名信号量相同,但可以在进程间共享。
Sema 使用随机命名的信号量实现伪匿名信号量。由于它们的操作语义保持不变,唯一的区别是它们的构造和销毁,但这对此库的消费者来说是透明的。
其他平台
理论上,Sema 应该可以在支持 POSIX 信号量(或 Linux 上的 futex)的任何平台上运行。但考虑到这一点,最好咨询您平台的信号量手册页。
依赖关系
~1–1.3MB
~20K SLoC