淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

非线程安全函数使用导致BUG

上一篇 / 下一篇  2008-02-22 00:24:21 / 个人分类:搜索引擎测试技巧

经典的 UNIX编程书籍专门一章提到非线程安全函数(不可重入)。一般情况下,这个问题不好爆发,但是高并发程序引爆这个问题。

 

开发人员有时也会犯晕的。

 

例如:

 

 

void log(int level, char *file, int line, const char *function, char *fmt, ...)
{
 
if (level>g_nLogLevel) return
;

 
char buffer
[1024];
 
time_t t
;
 
time(&t
);
 
struct tm *tm = ::localtime((const time_t*)&t
);


其中的localtime是非线程安全

应该更改为 localtime_r

 

 


TAG: linux 搜索引擎 搜索引擎测试技巧

 

评分:0

我来说两句

Open Toolbar