免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: spiritX
打印 上一主题 下一主题

[函数] 请问:pthread_mutex_unlock是阻塞的还是非阻塞的函数 ? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-09-04 14:21 |只看该作者
原帖由 5毛党党员 于 2008-9-4 14:19 发表



不是还有个
EINVAL the mutex has not been properly initialized.呢嘛。。。。

这个问题我也不清楚,只是来讨论的

我的man中没有啊,可能我的版本比较低。。。

论坛徽章:
0
12 [报告]
发表于 2008-09-04 14:30 |只看该作者
原帖由 cugb_cat 于 2008-9-4 14:20 发表

unlock之前释放啊,unlock了,关键区就不归你管了,你就不能随便释放了


AR_EnterCriticalSection(&(wk_thblk->csThStat));
...
AR_LeaveCriticalSection(&(wk_thblk->csThStat));

free(wk_thblk);

wk_thblk结构为:
typedef struct as_thblock_t{
        struct as_thblock_t *next;       
        AR_HANDLE hThread;                       
        int thtype;                                       
        int thstat;                                       
        AR_CRITICAL_SECTION csThStat;  /*  关键区  */
                                                               
        AR_HANDLE hFromTh;                       
        AR_HANDLE hToTh;                       

        int id;                                               
        AR_HANDLE handle;                       
}AS_THBLOCK;
---------------------------------------------------------------------------
这样就把内存搞坏了
我怀疑AR_LeaveCriticalSection非阻塞, 还没离开, 其内存就被释放了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP