Skip to content

Proper record control thread destruction #19

Description

@jonnew

In oat-record component, destruction of the record control thread requires some custom cleanup. In this case, as per @shlevy in #17

It would probably be better to either a) detach the thread or b) wrap the thread in a class with a destructor that calls cleanup.

Deteaching: downside is that the process won't wait for the thread to finish before exiting, so if there's any cleanup that thread needs to do it's a non-starter.

Having a class with a custom destructor is pretty idiomatic C++ here IMO. Doesn't mean it's the right way to do it, of course, but a big part of the rationale for "terminate on joinable thread destruction" is that it's so easy to get another behavior with your own wrapper.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions