Всем привет.
Вот сижу и программирую клиента для одного IM и в одной функции получился извращенный до нельзя код. Хотелось бы чтобы вы предложиле более красивую реализацию данного кода:
unsigned int thrdaddr;
HANDLE mthrd[2];
if(connected && !logining)
{
if(sendmtx=CreateMutex(NULL,false,NULL))
{
if(recvmtx=CreateMutex(NULL,false,NULL))
{
if(pingthrd=(HANDLE)_beginthreadex(NULL,0,(PTHREAD)PingThread,this,0,&thrdaddr))
{
if(recvthrd=(HANDLE)_beginthreadex(NULL,0,(PTHREAD)RecvThread,this,0,&thrdaddr))
{
DbgPrint("Login2: succesfull...");
logining=true;
return true;
}
else
DbgPrint("Login2: hello error...");
}
else
pingthrd=(HANDLE)_beginthreadex(NULL,0,(PTHREAD)PingThread,this,0,&thrdaddr);
}
else
DbgPrint("Login2: recv CreateMutex error...");
}
else
DbgPrint("Login2: send CreateMutex error...");
}
TerminateThread(pingthrd,0);
TerminateThread(recvthrd,0);
mthrd[0]=pingthrd;
mthrd[1]=recvthrd;
WaitForMultipleObjects(2,mthrd,true,INFINITE);
CloseHandle(pingthrd);
CloseHandle(recvthrd);
CloseHandle(sendmtx);
CloseHandle(recvmtx);
return false;
01.02.06 18:13: Перенесено из 'Философия программирования'