ONC+ 開発ガイド

自動マルチスレッド対応モードでのコンパイル

自動マルチスレッド対応モードにより、クライアントの要求を同時に処理するために Solaris スレッドが自動的に使用されます。-A オプションを指定して、RPC コードを自動マルチスレッド対応モードで生成します。また、-A を指定すると自動的に -M が指定されるため、-M を明示的に指定する必要はありません。生成されたコードはマルチスレッド対応でなければならないため、-M が (明示的ではなくても) 必要です。

マルチスレッド対応 RPC の詳細については、第 7 章「マルチスレッド RPC プログラミング」 を参照してください。さらに、自動マルチスレッド対応モード も参照してください。

次に、rpcgen によって生成される自動モードのプログラムの例を示します。rpcgen のプロトコルファイルであるtime.x のコードです。文字列はリモートプロシージャに引き渡されます。リモートプロシージャは、文字列を表示してクライアントの文字列長を返します。


例 3–21 自動マルチスレッド対応モード : time.x

		program TIMEPROG {
		 version TIMEVERS {
 		 unsigned int TIMEGET(void) = 1;
			 void TIMESET(unsigned) = 2;
		} = 1;
	} = 0x20000044;

マルチスレッド対応のスタブを作成するには、rpcgen -A time.x コマンドを実行します。

-A オプションを使用すると、生成されたサーバー側のコードには、サーバーの自動マルチスレッド対応モードを使用するための命令が含まれます。


注 –

マルチスレッド対応モードを使用するサーバー側プログラムをコンパイルする場合は、スレッドライブラリにリンクしなければなりません。そのためには、コンパイルコマンドに -lthread オプションを指定します。