ConditionVariable* ConditionVariable::Create()
 {
     ConditionVariable* ptr = new ConditionVariable;
     if (!ptr) {
         return nullptr;
     }
     
     const int error = ptr->Construct();
     if (error) {
         delete ptr;
         return nullptr;
     }
     
     return ptr;
 }