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 • Rust 包仓库 2/week @ 2024-01-01 • Rust 包仓库 3/week @ 2024-01-08 • Rust 包仓库 5/week @ 2024-01-15 • Rust 包仓库 1/week @ 2024-01-22 • Rust 包仓库 7/week @ 2024-01-29 • Rust 包仓库 24/week @ 2024-02-12 • Rust 包仓库 19/week @ 2024-02-19 • Rust 包仓库 28/week @ 2024-02-26 • Rust 包仓库 30/week @ 2024-03-04 • Rust 包仓库 35/week @ 2024-03-11 • Rust 包仓库 15/week @ 2024-03-18 • Rust 包仓库 7/week @ 2024-03-25 • Rust 包仓库 30/week @ 2024-04-01 • Rust 包仓库 22/week @ 2024-04-08 • Rust 包仓库 19/week @ 2024-04-15 • Rust 包仓库

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