スレッド・セイフToolTalkアプリケーション作成 アプリケーション開発者は、マルチ・スレッド・セイフToolTalkライブラリを使用する ことによって、ToolTalkのためのマルチ・スレッド・アプリケーションを作成することができ ます。このとき、アプリケーション・コード中のToolTalkリソースのロックを明示的に管理 する必要はありません。Xthreads.hスレッドAPIラッパーの拡張版を 使用しているので、マルチ・スレッドlibttを多様なスレッド実装に問題なく移植でき ます。 libttリソースの内部を保護するため、プロセス単位のロックを導入し保守します。 ウィンドウ・ツールキットの場合と違い、libttに大量の時間をさくアプリケーションはほ とんどないので、より精緻なロック技法の付加並列性によって性能が大幅に向上すること はありません。 デフォルトprocidtt_markに操作され る記憶装置のスタック、tt_release APIなどのいくつかのToolTalk のグローバル値には、ToolTalkのAPI呼び出しを行うスレッドが参照できるように、一貫し た状態でなければならないものがあります。(これらの値はスレッド固有のデータとなり ます。)この動作を初期化し、新しいデータを操作するためにさらにAPI呼び出しが導入さ れます。現在のスレッドにスレッド固有の値が設定されると、プロセス単位の値のか わりにスレッド固有の値を参照するため既存のAPI呼び出しを変更します。スレッド固有の 値が設定されない場合は、プロセス単位の値が使用されます。 すべてのプラットフォームでマルチ・スレッド機能が使用できるとはかぎりません。 そのため、ライブラリに機能の存在を尋ねるAPIがあります。たとえマルチ・スレッド機能 を使用できないプラットフォームであっても、新規のAPI呼び出しを実装し TT_ERR_UNIMPをスレッド固有のものに対して返せるようにします。 そうすればアプリケーション開発者は、未解決のシンボルの問題にかかわることなく 実行時のチェックが行えます。 APIの要約を次に示します。 tt_feature_enabledは、指定された機能が使用できるかどうか 決定します。 スレッド・セイフToolTalkアプリケーションtt_feature_enabled tt_feature_enabled関数 tt_feature_requiredは、指定された機能が要求されているこ とを宣言し、その機能が存在する場合、使用可能にします。 スレッド・セイフToolTalkアプリケーションtt_feature_required tt_feature_required関数 tt_thread_session_setは、スレッドのためのデフォルト・ セッションを設定します。 スレッド・セイフToolTalkアプリケーションtt_thread_session_set tt_thread_session_set関数 tt_thread_sessionは、スレッドのためのデフォルト・ セッションを取り出します。 スレッド・セイフToolTalkアプリケーションtt_thread_session tt_thread_session関数 tt_thread_procid_setは、スレッドのためのデフォルト・ プロセスIDを設定します。 スレッド・セイフToolTalkアプリケーションtt_thread_procid_set tt_thread_procid_set関数 tt_procid_sessionは、指定されたプロセスIDと関連する セッションを返します。 スレッド・セイフToolTalkアプリケーションtt_procid_session tt_procid_session関数 Tttt_cは、typedefと列挙型です。 スレッド・セイフToolTalkアプリケーションTttt_c Tttt_c typdef/列挙型宣言 Tttt_c typdef/enum declarations