首先,我测试了它,它运行良好。 我想知道它是否正确。使用“扔”而不释放互斥锁在win32中安全吗?
funcA() {
DWORD res = WaitForSingleObject(mutex, INFINITE);
if (aaa != bbb) throw "aaa";
ReleaseMutex(mutex);
}
WaitForSingleObject始终返回“0”,而不是“WAIT_ABANDONED”或任何其他错误代码。 我只是找不到任何描述Mutex的文档在“throw”上发布。
谢谢
如果您从同一个线程中conicually调用funcA(),那么这是预期的行为 - 因为Windows互斥量是递归的,所以返回WAIT_OBJECT_0。如果您第二次从另一个线程调用funcA(),我期望该调用会阻塞,直到第一个线程释放互斥量。 – 2012-03-26 12:34:37
你说得对。我使用xmlrpc库,我认为有多个线程处理请求,但只有一个线程。所以,这是预期的行为,我的Mutex是不必要的! :) – Sean 2012-03-26 15:41:51