アプリケーションにメッセージが到着すると、次のようになります。
ファイル記述子が有効になります。
Xt メインループが select から抜け出し、XtAppAddInput 呼び出しで登録してある関数を呼び出します。
この登録関数は、tt_message_receive を呼び出します。
メッセージが読み込まれ、メッセージに関連付けられているコールバックがすべて起動されます。
メッセージのコールバックから戻ります。
入力コールバックは他の処理を継続します。
たとえば、次のような入力コールバックに対して、
input_callback(...) { Tt_message m; printf ("input callback entered\n"); m = tt_message_receive(); printf ("input callback exiting, message handle is %d\n", (int)m); } |
メッセージコールバックが次のようになっている場合、
message_callback(...) { printf("message callback entered\n"); return TT_CALLBACK_PROCESSED; } |
次のように出力されます。
input callback entered message callback entered input callback exiting, message handle is 0 |