日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




リエントラントな HP C RTL ルーチンが示すリエントラントのタイプを制御します。

形式

#include <reentrancy.h>

int decc$set_reentrancy (int type);


引数



type

目的のリエントラントのタイプ。次のいずれかの値を使用します。

  • C$C_MULTITHREAD --- DECthreads 製品と組み合わせて使用するように設計されています。DECthreads ロックを実行し, AST を絶対に無効にしません。この形式のリエントラントを使用するには,システムで DECthreads が使用可能でなければなりません。

  • C$C_AST --- __TESTBITSSI (Integrity, Alpha) 組み込み関数を使用して,RTL コードのクリティカル・セクションの周囲で単純なロックを実行し,ロックされたコード領域で非同期システム・トラップ (AST) を無効にすることもあります。AST コードに HP C RTL I/O ルーチンの呼び出しが含まれている場合や,ユーザ・アプリケーションで AST を無効にする場合は,このタイプのロックを使用する必要があります。

  • C$C_TOLERANT --- __TESTBITSSI (Integrity, Alpha) 組み込み関数を使用して,RTL コードのクリティカル・セクションの周囲で単純なロックを実行しますが,AST は無効になりません。 AST が使用され,ただちに配布しなければならない場合は,このタイプのロックを使用する必要があります。 TOLERANT はデフォルトのリエントラント・タイプです。

  • C$C_NONE --- HP C RTL で最適な性能を実現しますが,RTL コードのクリティカル・セクションの周囲で絶対にロックを行いません。 HP C RTL を呼び出す AST によって実行スレッドが割り込まれる可能性がない場合に,単一スレッド環境でのみ使用するようにしなければなりません。

リエントラント・タイプは上げることができますが,下げることはできません。リエントラント・タイプを低いものから高いものへ順に並べると,C$C_NONE, C$C_TOLERANT,C$C_AST,C$C_MULTITHREAD の順になります。たとえば,アプリケーションをマルチスレッドに設定した後,リエントラントを AST に設定する呼び出しは無視されます。 decc$set_reentrancyの呼び出しでリエントラント・タイプを下げようとすると, - 1 という値が返されます。


説明

リエントラント・ルーチンによって示されるリエントラントのタイプを変更するには, decc$set_reentrancy関数を使用します。

decc$set_reentrancyは非 AST レベルで明示的に呼び出す必要があります。

DECthreads を使用するアプリケーションでは,DECthreads が自動的にリエントラントをマルチスレッドに設定します。


戻り値

タイプ この呼び出しの前に使用されていたリエントラントのタイプ。
-1    リエントラント・タイプを下げようとしたことを示します。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.