Здравствуйте, Kubyshev Andrey, Вы писали:
KA>Я бы сделал просто в таком стиле. Просто, но со вкусом:
KA>if (!....){ KA> DbgPrint ... KA> goto error; KA>} KA>... KA>error: KA>if (pingthrd) { KA> TerminateThread(pingthrd,0); KA> CloseHandle(pingthrd); KA>}
Жуть. Даже для С. Можно сделать функцию, что-то Deinintialize. И в ней по проверке handle==0 убивать. И без всяких goto. Сразу return.
KA>Если не просто и это С++ то исключения.
Неизвестно что имелось ввиду. Mutex если уже был создан, должен давать ошибку, и это есть нормальная ситуация. Он для этого и создается. А может это и исключительный случай. Без знания того что здесь автор хотел, не скажешь.
Поэтому лучше RAII.