http://d.hatena.ne.jp/ita-wasa/20070717をうけて。 チャネルをパターンで指定できるようにしてみる。最終的にはRindaとほぼ同じ実装になると思うけどエッセンスだけ。 deqのパターンと、enqのチャネルを === で比較します。Stringで示したチャネルをRegexpで示すパターンで指定することができます。id:it-wasaさんの形のチャネルではないけれど、大した違いがないので気にしない。 Queueであるので順序を律儀に守るとすると、チャネルごとに事前に分けておくと都合が悪いのでArrayにすべて格納しています。RDBMSと一緒に使うならこの辺りはもっといろいろできそう。 (Rinda同様に)クライアントの数、キューに残ってしまう要素の数などが性能に響いてくると思います。 require 'monitor' class MailBag def i