Hi Binh-Minh,

Wonderful, thanks for all the good work.

Kind regards,
Thomas

On Mon, Dec 4, 2017 at 4:49 PM, Binh-Minh Ribler <bmrib...@hdfgroup.org>
wrote:

> Hi Thomas,
>
>
> Thank you for your report of the issue.  It will be addressed in the next
> release.
>
>
> Binh-Minh
>
>
> ------------------------------
> *From:* Hdf-forum <hdf-forum-boun...@lists.hdfgroup.org> on behalf of
> Thomas Krijnen <t.krijnen+hdf5_fo...@gmail.com>
> *Sent:* Monday, December 4, 2017 9:52 AM
> *To:* hdf-forum@lists.hdfgroup.org
> *Subject:* [Hdf-forum] H5cpp resource leak
>
> Hi,
>
> I have observed the following code leaks resources linearly with program
> runtime (admittedly I checked only 1.8.19, but didn't see a reference to
> this in the .20 release notes).
>
> int main(int, char**) {
>     H5::CompType ct((size_t)8);
>     ct.insertMember("a", 0, H5::PredType::NATIVE_INT32);
>     ct.insertMember("b", 4, H5::PredType::NATIVE_INT32);
>
>     for (int i = 0; i < 100000; ++i) {
>         H5::IntType dt = ct.getMemberIntType(0);
>         std::cerr << dt.getSize(); // just some side effect in order not
> be optimized away (I doubt it would though)
>         dt.close();
>     }
> }
>
> In my naive understanding this is due to the duplicate reference to
> p_get_member_type() in:
>
> IntType CompType::getMemberIntType(unsigned member_num) const
> {
>     try {
>       IntType inttype(p_get_member_type(member_num));
>         f_DataType_setId(&inttype, p_get_member_type(member_num));
>         return(inttype);
>     }
>     catch (DataTypeIException& E) {
>         throw DataTypeIException("CompType::getMemberIntType",
> E.getDetailMsg());
>     }
> }
>
> This then results in two identifiers of which only one can be close()d.
> Note that this is not specific to integer member types.
>
> If one insists on using the C++ types, creating member types in the
> following fashion enabled me to close resources properly.
>
> H5::IntType dt(H5Tget_member_type(ct.getId(), 0));
> std::cerr << dt.getSize();
> H5Idec_ref(dt.getId());
> dt.close();
>
> Kind regards,
> Thomas
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> Hdf-forum@lists.hdfgroup.org
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to