えちょ記

語らないブログ

SignalObjectAndWaitの難しい話

ちなみに、このJavaSHIORIですが、Windows9X系はサポート外です(^^;。厳密に言えば、Windows95は完全にアウト、98SE2、MEに関しては動くかもしれない、という位置づけになります。

というのも、JavaとSHIORIクライアントを結びつけるのに、直接接続じゃなくてスレッドでイベントを投げつつ同期処理を行っているのですが、この中でSignalObjectAndWaitという関数を利用しています。PThreadでいう条件変数を実装するためにはこのAPIが絶対不可欠(この辺を参照)なのですが、実はこれ、NT4.0になってやっと用意されたもので、9x系では存在しないことになっています。

じゃあ使うなと言われそうですが、OSレベルでこれが無いと、スレッドのイベント同期が非常にやばいんですよ(涙)。ただ、実際にはWin98のSE2以降では隠しAPIとして存在するらしいので、保証は出来ませんが動くかもしれない‥‥という事です(^^;

有名所では、Opera7が同様の制限でWin98以降対応、となっています。つーかJava5も、Win95は対象外です。やはりこのAPIがあるのと無いのとでは、マルチスレッドアプリの実装に天と地ほどの差が出ると見て間違いありません。とゆーかMSさん、こーいう重要なAPIはもっと早い段階で実装しましょう‥‥(ーー;)