2012-04-09 8 views
1

したがって、チャネル上のハンドラ間でアイテムを共有する場合、ChannelLocal(出席者がputとgetを持つ)が3.3.1の解決策です。netty 3.3.1どのようにしてメモリリークを防ぐためにChannelLocalが空になりますか?

私が自分のハンドラチェーンを終えると、ChannelLocalは自動的に自分のチャンネルが閉じていることを認識し、ChannelLocalの項目を空にしますか?または、明示的に "ヌル"する必要がありますか、共有オブジェクトを使用したら、ChannelLocalを空にしますか?

IE ChannelLocalを使用するとメモリリークが発生し、明示的にnullにする必要があります。

ガベージコレクションがどのようにアイテムとやりとりするかについては、ソースコードのコメントを掘り下げて私にはわかりませんでした。

答えて

2

パラメータがtrueのChannelLocalを構築すると、チャンネルが閉じられると自動的にクリーンアップされます。それ以外の場合は、自分で行う必要があります。デフォルトではfalseを指定して構築します。

[1]を参照してください。

[1] http://netty.io/docs/stable/xref/org/jboss/netty/channel/ChannelLocal.html#127

+0

おかげで、これは私が必要なものでした!何とかそれを逃した。 – CStepnitz