Yes, calling broadcast. via the destructor could be dangerous.
stop() should, but the destructor should join it's member thread only (which will also probably stopped already)