void UIWidget::destroy() { if(m_destroyed) g_logger.warning(stdext::format("attempt to destroy widget '%s' two times", m_id)); // hold itself reference UIWidgetPtr self = static_self_cast<UIWidget>(); m_destroyed = true; // remove itself from parent if(UIWidgetPtr parent = getParent()) parent->removeChild(self); internalDestroy(); }
void UIWidget::destroy() { if(m_destroyed) logWarning("attempt to destroy widget '", m_id, "' two times"); // hold itself reference UIWidgetPtr self = asUIWidget(); m_destroyed = true; // remove itself from parent if(UIWidgetPtr parent = getParent()) parent->removeChild(self); internalDestroy(); }
void ServerContextImpl::destroy() { Lock guard(_mutex); if (_state == DESTROYED) { // silent return return; // exception is not OK, since we use // shared_pointer-s auto-cleanup/destruction // THROW_BASE_EXCEPTION("Context already destroyed."); } // shutdown if not already shutdown(); // go into destroyed state ASAP _state = DESTROYED; internalDestroy(); }