移植先のOSがマルチスレッドOS(グローバル変数は全スレッドで共有される)で、かつ、名前付きオブジェクトをサポートしていない(2番目以降のスレッドでは生成済みのメモリ領域にリンクしたりセマフォを開く際に名前を指定できない)場合、どのように実装すべきか?
VxWorks版ターゲットの例を参照してください。VxWorks版では各スレッドからアクセスができるようなグローバルなテーブルを作り、そこにオブジェクトのハンドルを格納しています。このテーブルへのアクセス保護はセマフォで制御します。
そして、下記のものを元にしてテーブル内に格納してあるオブジェクトのハンドルを得るようにします。
- オブジェクトの種別(メモリ領域、セマフォ、メッセージキューなど)オブジェクトのオーナ番号(リソース番号など)オブジェクト番号(メモリ領域の場合、1~最大32の値)
例えば、メモリ領域のテーブルはtypSPC_ID型の構造体がこのテーブルに相当します。
- 最終更新:
- 2008-08-01 14:20
- 改訂:
- 1.1