The oskit_condvar COM interface allows components to wait for conditions. The interface is intended to be generic so that components do not need to know the specifics of any particular thread system. A condition is typically combined with an oskit_lock object to faciliate building monitor type objects. Attempting to wait on a condition without supplying a locked oskit_lock object results in undefined behaviour. The oskit_lock COM interface inherits from oskit_iunknown, and has the following additional methods: