libeventのメモリリークを追う

デバッグしていると,libeventで盛大なメモリリークを確認しました。
スタックトレースで追っていくと、どうやらevthread_use_windows_threads()でリークしている模様。非同期処理するためには、この関数で有効化する必要があるんですけど、ここでリークしているとは...

調査してみると、コミュニティでは議論されている模様。
[Libevent-users] evthread_use_windows_threads() cause memory leak?

とりあえず終了時にlibevent_global_shutdown()を呼べばOK!みたいなことが書かれていたので、該当するAPIを探してみるものの存在しない。どうやら2.0.x系では無いみたいです。

というわけで、2.1.x系にアップデートしてlibevent_global_shutdown()を呼んだらリークは解消しました。
きっとevthread_use_windows_threads()で内部的に確保したリソースを開放し忘れていているんでしょうけど..
あとでソースを読んでみることにします。