+ * // Your class must be `final` because inheriting from a class with
+ * // threads can cause all sorts of subtle issues:
+ * // - Your base class might start threads that attempt to access derived
+ * // class state **before** that state was constructed.
+ * // - Your base class's destructor will only be able to stop threads
+ * // **after** the derived class state was destroyed -- and that state
+ * // might be accessed by the threads.
+ * // In short, any derived class would have to do work to manage the
+ * // threads itself, which makes inheritance a poor means of composition.
+ * struct MyClass final {