ToolTalk ユーザーズガイド

プロセスは自分自身に要求を送信できますか

送信できます。プロセスは、自分で処理する要求を送信できます。このような要求は通常、次のように処理します。

{	...
	tt_message_arg_val_set(m, 1, "answer");
 tt_message_reply(m);
	tt_message_destroy(m);
 return TT_CALLBACK_PROCESSED;
}

しかし、ハンドラと送信者が同じプロセスの場合、(同じプロセスに) 応答が返って来た時点では、メッセージは既に削除されています。送信側がメッセージに添付したメッセージ (コールバックやユーザーデータなど) もすべて削除されています。これを防ぐには、メッセージを削除しないでください。次に例を示します。

{	...
	if (0!=strcmp(tt_message_sender(m),tt_default_procid())) {
		tt_message_destroy(m);
}