return true if actually closed, flase for already closed