// The constraint MUST exist in the collection // Could be called if the constraint was previously removed. // Return 'true' if the constraint was actually removed and disposed. public bool RemoveAndDestroyConstraint(BSConstraint constrain) { bool removed = false; // remove the constraint from our collection removed = m_constraints.Remove(constrain); // Dispose() is safe to call multiple times constrain.Dispose(); return(removed); }
// The constraint MUST exist in the collection public bool RemoveAndDestroyConstraint(BSConstraint constrain) { lock (m_constraints) { // remove the constraint from our collection m_constraints.Remove(constrain); } // tell the engine that all its structures need to be freed constrain.Dispose(); // we destroyed something return(true); }
// The constraint MUST exist in the collection // Could be called if the constraint was previously removed. // Return 'true' if the constraint was actually removed and disposed. public bool RemoveAndDestroyConstraint(BSConstraint constrain) { bool removed = false; m_constraintsRwLock.AcquireWriterLock(-1); try { // remove the constraint from our collection removed = m_constraints.Remove(constrain); } finally { m_constraintsRwLock.ReleaseWriterLock(); } // Dispose() is safe to call multiple times constrain.Dispose(); return(removed); }
// The constraint MUST exist in the collection public bool RemoveAndDestroyConstraint(BSConstraint constrain) { lock (m_constraints) { // remove the constraint from our collection m_constraints.Remove(constrain); } // tell the engine that all its structures need to be freed constrain.Dispose(); // we destroyed something return true; }
// The constraint MUST exist in the collection // Could be called if the constraint was previously removed. // Return 'true' if the constraint was actually removed and disposed. public bool RemoveAndDestroyConstraint(BSConstraint constrain) { bool removed = false; // remove the constraint from our collection removed = m_constraints.Remove(constrain); // Dispose() is safe to call multiple times constrain.Dispose(); return removed; }