Overview TOP Usage

FULLOCKの特徴

柔軟なインストール

FULLOCKは、あなたのOSに応じて、柔軟にインストールが可能です。あなたのOSが、Ubuntu、Fedora、Debian、Alpineなら、packagecloud.ioからソースコードをビルドすることなく、簡単にインストールできます。それ以外のOSであっても、自身でビルドして使うことができます。

提供機能

FULLOCKは以下の機能を提供します。

FULLOCKミューテックス

posixのmutexと同様にプロセス間共有ミューテックスとして機能します。
ただし、ロック保持しているプロセス(スレッド)が正常終了(exitなどで終了)した場合でもロックを自動的に開放できる強力なROBUSTモードを備えています。
また、プロセス間共有ミューテックスを構築するための共有メモリの管理など自動的に行われます。
名前付ミューテックスと考えると理解しやすいです。

FULLOCKリーダライターロック

fcntlよりも高速なロックシステムであり、posixのrwlockと同様のプロセス間共有のリーダーライターロックを提供します。
posixのrwlockでは、プロセス間共有したrwlockにはROBUSTモードは存在しませんが、FULLOCKではミューテックスと同様にROBUSTモードを提供し、デッドロックを起こさないロックを提供します。
fcntlのF_SETLKと同等の機能を提供し、POSIXのリーダライターロックと同等のI/Fで利用できます。
FULLOCKでは、提供するリーダーライターロックをラップしたクラスを提供し、再帰的なロックにも対応しています。
ロックを保持するスレッドが同一のロックを再取得する場合において、デッドロックせず再帰的にロックができる機能を提供します。

FULLOCK条件変数

ミューテックスと同様にROBUSTモードを強固にしたプロセス間共有の条件変数を提供します。
FULLOCKミューテックスを利用し、提供される条件変数です。
名前付条件変数と考えると理解しやすいです。

その他

ロックに関連する簡易的なC++テンプレートを提供します。

コスト

FULLOCKを利用した場合(リンクした場合)には以下のコストがかかります。

Overview TOP Usage