Archive for the ‘API’ tag
errno 多线程
对于在 Unix/Linux 下写底层程序的人来说,调用系统的 API 那就跟吃饭喝茶一样普遍,而对于系统调用的返回值而言,一般是给你一个 -1,至于具体的错误原因那麻烦你还要查询 errno 这个变量,但是你有没有想过如果你的程序在多线程下,那么这个 errno 还是可靠的吗?对于古老古老古老之前,这可能确实是一个问题,但是现在你不用担心了,只需要定义上这个宏 __LIBC_REENTRANT ,这可以保证 errno 是线程安全,对于每一个线程都会有一个 errno 的值,放心了吧
Drizzle存储引擎的API改动跟踪
从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向着更加成熟又迈进了一步!