bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA プログラミング・リファレンス > CORBA API |
Tuxedo CORBA プログラミング・リファレンス
|
概要
ORB がサーバ関連の作業を実行できるようにします。
C++ バインディング
void CORBA::ORB::perform_work ();
引数
特にありません。
例外
ORB がシャットダウンした後に、work_pending および perform_work() を呼び出すと、BAD_INV_ORDER 例外が発生します。アプリケーションでは、この例外を検出して、いつポーリング・ループを終了するかを判定します。
説明
このオペレーションは、メイン・スレッドによって呼び出された場合に ORB がサーバ関連の作業を実行できるようにします。それ以外の場合は、何の処理も行いません。
work_pending() および perform_work() オペレーションを使用すると、ORB などのアクティビティのメイン・スレッドを多重化する単純なポーリング・ループを記述できます。このようなループは主に、シングル・スレッドのサーバで必要になります。マルチスレッドのサーバでポーリング・ループが必要になるのは、メイン・スレッドの使用が必要なほかのコードと ORB の両方がある場合のみです。このようなポーリング・ループについては、以下の例を参照してください。
戻り値
特にありません。
関連項目
CORBA::ORB::work_pending
例
次に、ポーリング・ループの例を示します。
// C++
for (;;) {
if (orb->work_pending()) {
orb->perform_work();
}
// ほかの作業を実行させるか、
// またはスリープ状態にする
}
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |