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

Download history 2/week @ 2024-01-01 3/week @ 2024-01-08 5/week @ 2024-01-15 1/week @ 2024-01-22 7/week @ 2024-01-29 24/week @ 2024-02-12 19/week @ 2024-02-19 28/week @ 2024-02-26 30/week @ 2024-03-04 35/week @ 2024-03-11 15/week @ 2024-03-18 7/week @ 2024-03-25 30/week @ 2024-04-01 22/week @ 2024-04-08 19/week @ 2024-04-15

79 每月下载
用于 3 crates

MIT 许可证

19KB
425

sema

一个简单的信号量。

Build Status Crates.io Crates.io

文档

用法

将此添加到您的 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