タイトル | Javaで作るWebObjectsのプログラムでのオートリリースプール | カテゴリー | Knowledge Base(旧TIL), WebObjects |
作成日 | 2000/11/2 12:22:52 | 作成者 | 新居雅行 |
Tech Info Libraryに掲載された文書によると、WebObjectsでJavaによるマルチスレッドのプログラムを作成した時、「_NSAutoreleaseNoPool…」などと記載されたログメッセージがコンソールに表示される。場合によっては大量に表示される。このメッセージは無視してよく、アプリケーションの実行には悪影響を与えない。ただし、あまり多いとログファイルが急激に増加するなどの副作用はある。これは、JavaからObjective-Cのオブジェクトを生成することによって発生する。Objective-Cではオートリリースプールのメカニズムを利用しているが、Javaの一般的な記述ではこのメカニズムが適切に指定されない。このメッセージを避けるためには、スレッドの最初に「int pool = NSAutoreleasePool.push();」、スレッドの最後に「NSAutoreleasePool.pop(pool); 」といったコードを追加しておく。 | |
関連リンク | WebObjects 4.x: "_NSAutoreleaseNoPool ... just leaking" Messages |