----- /// final @property bool isClosed() @safe @nogc pure { synchronized (m_lock) { return m_closed; } } -----
I don't understand the purpose of this lock. The lock will be released as soon as the function returns, and it returns a copy of a boolean anyway. Am I missing something here?