30 十一月, 2006

没出息啊

都和谐了,我居然还会为这种事情生气,唉~

http://www.google.com/search?hl=zh-CN&newwindow=1&q=%E4%BA%94%E6%B2%B3%E5%8E%BF+%E6%95%99%E5%B8%88+%E7%9F%AD%E4%BF%A1&btnG=%E6%90%9C%E7%B4%A2&lr=


17 十一月, 2006

看看谁厉害


输入你的姓名和对方姓名,点击fight立刻开始PK。 欢迎大家把战报回复上来。

14 十一月, 2006

到处都是“别有用心”的人

先是连岳这里:“中国最牛B的中学——四川广安友谊中学

然后我尝试使用google搜索“熊洪徽”,连接立刻被reset,真灵。对GFW的敬仰之情再次泛滥。

用百度是可以的,大部分是这样结果:广安一小孩误服农药死亡 政府积极善后

百度快照里有漏网之鱼:四川广安大规模警民冲突, 百度快照

文引当地《广安日报》发表的题为「谣言止于智者」的文章,指出「要警惕一些别有用心者的蒙骗、怂恿,轻率的采取一些过激行为」,要倍加珍惜安居乐业的大好局面。

又见“别有用心”者。


11 十一月, 2006

永和大王剧照

今天陪骨头和乔武去医院做产后检查。大人孩子都健康,小家伙毛重11.5斤,身高59cm,和出生时比,那进步可不是一点点。

然后去永和大王喝豆浆吃油条。这里味道很重,声音嘈杂。小家伙可能有点慌,在我的腿上,乖得很。

q5 永和大王

Q5在永和大王

Q5在永和大王

Q5在永和大王

Q5在永和大王


7 十一月, 2006

第二次游泳

第二次洗澡,吸取第一次的经验教训,水更多一些,达到60cm左右高,水温36度不到,也比上次低一些,室温也降低了一点。小朋友明显比上次活跃,能够自己在里面动作了,有点游泳的感觉。不像上次,泡在水里,不拨不动,跟泡澡似的。

~~~我游~~~

Q5游泳

~~~转过去了~~~

Q5游泳


5 十一月, 2006

thread safety,就必须保证所有的函数线程安全

用到libxml2的nanohttp模块,虽说libxml2自从2.4.7版本开始就号称已经做到thread safety了,但是,至少这个附加的nanohttp模块在多线程环境中是不安全的。

即便你用--with-threads和--with-thread-alloc选项编译libxml2,也只能保证libxml2库在Parser和内存分配这部分线程安全。nanohttp的不安全不是因为libxml2自己内存管理冲突。

事实上,当多个线程同时调用nanohttp模块的时候,主机地址解析就会发生冲突。用tcpdump查看多线程调用nanohttp fetch的网络包,就发现,经常地,应当向B主机发送的请求却被发送到A主机。

原因是这个模块中调用了非线程安全的函数gethostbyname。处理B主机请求的线程调用gethostbyname(B),它生成的hostent数据覆盖了这之前负责处理A请求的线程的gethostbyname(A)的数据。结果,B主机请求就被发送到了A,张冠李戴了。

要想实现thread safety,就必须使用gethostbyname的线程安全版gethostbyname_r

同理,象localtime、gmtime之类的函数,与gethostbyuname类似,返回结果的内存分配不是由调用者控制的,都不是thread-safe的。应该用他们各自的reenter版,分别是localtime_r,gmtime_r。

这里找到一份Thread-Safe and Thread-Unsafe Procedure List