dazuiniu's blog

cat /dev/dazuiniu/random

Archive for the ‘API’ tag

errno 多线程

View Comments

对于在 Unix/Linux 下写底层程序的人来说,调用系统的 API 那就跟吃饭喝茶一样普遍,而对于系统调用的返回值而言,一般是给你一个 -1,至于具体的错误原因那麻烦你还要查询 errno 这个变量,但是你有没有想过如果你的程序在多线程下,那么这个 errno 还是可靠的吗?对于古老古老古老之前,这可能确实是一个问题,但是现在你不用担心了,只需要定义上这个宏 __LIBC_REENTRANT ,这可以保证 errno 是线程安全,对于每一个线程都会有一个 errno 的值,放心了吧 ;-)

Written by dazuiniu

August 21st, 2010 at 11:24 pm

Posted in usage

Tagged with ,

Drizzle存储引擎的API改动跟踪

View Comments

从drizzle的trunk tree开始的1524个revision开始,MySQL丑陋的名字终于被改掉了。

-  int ha_index_init(uint32_t idx, bool sorted);
-  int ha_index_end();
-  int ha_rnd_init(bool scan);
-  int ha_rnd_end();
+  int startIndexScan(uint32_t idx, bool sorted);
+  int endIndexScan();
+  int startTableScan(bool scan);
+  int endTableScan();

当我第一次看到诸如ha_rnd_init()这样函数名字的时候,心里不免倒吸一口冷气,想:ha代表什么?rnd是record的意思还是row的意思?估计也就init还能透露出这个函数的本意。

作为一名家长,没有人希望自己孩子的名字被嘲笑,比如你姓“操”,你非得为孩子取个“蛋”做为名字,但就真是自作孽不可活也。同样作为程序员,需要对自己函数的命名小心翼翼,在古老古老之前,大概是在Fortran语言流行的年代,有大佬专门著书说明一个好的名字的重要性。

大嘴牛我举双手双脚赞成这样的改动,Drizzle向着更加成熟又迈进了一步!

Written by dazuiniu

May 9th, 2010 at 12:05 pm

Posted in database

Tagged with ,