【发布时间】:2012-01-27 11:39:02
【问题描述】:
当我尝试制作一个以字符串为键且以 pthread_mutex_t 为元素的地图时,
map<string, pthread_mutex_t> connectedClientsMutexes;
pthread_mutex_t myMutex;//= PTHREAD_MUTEX_INITIALIZER;
connectedClientsMutexes.insert(pair<string,pthread_mutex_t>(userName,myMutex));
while (1)
{
pthread_mutex_lock(&connectedClientsMutexes[userName]);
// do something here
}
这会生成:
phase3: pthread_mutex_lock.c:312: __pthread_mutex_lock_full: 断言 `(-(e)) != 3 || !robust'失败了。
【问题讨论】:
-
代码有时有效,有时无效:S
标签: c++ linux pthreads posix mutex