Re[4]: Красота кода
От: GlebZ Россия  
Дата: 31.01.06 19:32
Оценка: 7 (2)
Здравствуйте, iix, Вы писали:

iix>Здравствуйте, GlebZ, Вы писали:


GZ>>Неизвестно что имелось ввиду. Mutex если уже был создан, должен давать ошибку, и это есть нормальная ситуация. Он для этого и создается. А может это и исключительный случай. Без знания того что здесь автор хотел, не скажешь.

GZ>>Поэтому лучше RAII.
iix>Просто хотел спросить как иначе но красивше без этих if внутри if написать данную функцию. И как боротся с таким количеством проверок. Чтоли принимать таблетки против паранойй

class CMutex
{
HANDLE m_handle;
public:
CMutex()
{
  m_handle=0;
  m_handle==CreateMutex(NULL,false,NULL);
  if (!m_handle)
     throw Exception("Error");
}
~CMutex(){if (m_handle)CloseHandle(m_handle);};
}
class CThread
{
HANDLE handle;
public:
CMutex()
{
     m_handle=0;
     m_handle=(HANDLE)_beginthreadex(NULL,0,(PTHREAD)PingThread,this,0,&thrdaddr)  
     if (!m_handle)
        throw Exception("Error");
}
~CThread(){}
}

void Logging()
{
if (!Logged())
{
   CMutex sendmtx;
   CMutex recvmtx;
   CThread pingthrd;
   CThread recvthrd;
   pingthrd.TerminateThread(0);
   recvthrd.TerminateThread(0);
   mthrd[0]=pingthrd;
   mthrd[1]=recvthrd;
   WaitForMultipleObjects(2,mthrd,true,INFINITE);
}
}

По моему, вполне читабельно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.