最近のトラックバック

2021年7月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
無料ブログはココログ

« 未踏ソフト秘話 | トップページ | 酒びたり »

2005.12.02

朝の一仕事

 今日は、未踏じゃない方の仕事の都合で気合を入れて早起き。今朝の9時を目標に一仕事やっつける必要があったため、5時に起きて朝食と濃いコーヒーを用意し、集中して作業にかかる。やっぱタイムリミットがあると熱の入り方が違いますね。
 8:20頃一通りの作業が終わり、一安心したところ、どうも動くときと動かないときがあることに気づいた。

(以下マニア向け)
 今朝作ったものは、C#のdelegateを使ってネイティブシステムからコールバックを受ける必要があるのだが、

foo(new Delegate(Callback));

 みたいにしてデリゲートオブジェクトを直接渡していた。多くはこれで動くのだが、どうも再現性のないタイミングで動かなくなってしまう。
 かなり長いこと悩んだ末にハッと気づいたのは、このDelegateオブジェクトがGCで回収されてしまっているという可能性。確かにネイティブ側からのみ参照があってもダメだ。
 なので、このデリゲートを常に生きている参照に放り込んだところ見事解決。

 確かにこれは気づきにくいよなあ。せめて、死んだdelegateに対してコールバックが来たときにaccess violationでも発生してくれればヒントになったんだが、一切エラー通知はないのでかなり手探りが続いた。

 早起きしたので早くも眠い。これからデスノートの9巻読んで、スターウォーズエピソード3のDVD観て寝ます。

« 未踏ソフト秘話 | トップページ | 酒びたり »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 朝の一仕事:

» ハック72 [怪しい料亭で100億貢ぐ仕事術]
ドメガチャートを作っている方のブログがあったので 少しばかり読んでみると、「昼下がりのハッキング」とかの部分で ケンミレと言うサイトのJAVAアプレットのソースコードを解析して ドメガチャートで使用しているみたい。。。 ボクの作ったアプレットをその解析な....... [続きを読む]

« 未踏ソフト秘話 | トップページ | 酒びたり »