| 前 的个人资料miss your eye照片日志列表 | 帮助 |
|
|
7月28日 歪招需要从server检查client超时,另开一个线程定时轮询所有client从实现上讲是简单的,不过心理上是有无法逾越的障碍的,我怎么就那么烦轮询,懒人就应该等通知而不是反复刷。咨询了几位大牛,给我的建议也是设置队列,无奈只好奋斗了一下,又把client结构纵横交错了一条队列出来,外加一个邪恶的监视线程,算是完事了。 不过心里总觉得疙瘩,躺在床上辗转不能安眠,我不要轮询我不要轮询…… 突然就灵光一现,假如我在client活动的时候更新一个定时器,如果定时器触发就认为是超时了岂不就成了事件驱动了么?不过client不能太多,不然就要命了。 7月23日 reader-writer-lockreader-> lock -> readers < max_readers ? reader++ : blocking ...
reader-> unlock -> readers--
writer -> lock -> exclusive_lock(); for(i=0;i<max_readers;i++,readers++) ;
writer -> unlock -> readers = 0; exclusive_unlock(); 7月21日 布丁8岁了人活着挺不容易,还在懵懂的时候就开始匆忙的选择,一步步忙乱的下一盘不知什么时候能终结,却必定下不完的棋。我时常不自觉的回头看,不是因为我喜欢怀旧,而是前面的路看不那么清楚。但回头看到的悲伤们让我不敢注目,虽然视线只是一闪而过,却仍然让我心跳+5,久久不能平复。而那些喜悦们,也很快就变成失落的怀念,分别之后的过去与现在,就如同自己的未来一样,看不清楚,无从得知。
8年前,8月中,我在西安,挑了个周末,去了宠物市场。我都不记得那是群众路还是劳动路,我真是个人类文明的耻辱,每个呆过的城市里的道路公交,我都完全无知,虽然方向感很准确,可以总是保证我徒步数小时后顺利到达,但我不得不说,那很累。不记得宠物市场什么样了,只记得摊主问我要大猫小猫,然后让我看4只满月的小猫,2个虎斑,2个小白,我犹豫了3秒钟,选了个虎斑,35块。
回去的时候打了车,坐后排,小猫还没我手掌长,叫声奶声奶气的,甚至还不怎么会走路,后腿总是撇开着,走起来摇摇摆摆,看着笨笨的。我把它托在掌心,让它看窗外的街景,而它似乎还意识不到速度,傻乎乎的就想走出去,一点也不知道害怕,对周围环境的变化也毫无知觉,我下车,上楼,带它进屋,它都只顾着走来走去,一点没管脚下到底是我的手,还是肩膀,或是沙发……
我打小喜欢猫,家里也养过,不过自己都是看着老妈和老姐照顾猫,没亲手干过换猫灰这种又脏又臭的事。但是我天资还算聪颖,看过的事都基本能照猫画出猪来。太白花园对面的徐家庄市场那些小馆子们每天会扔大量的蜂窝煤灰,于是我拎了个大塑料袋下去,在市场口打转,我不大会跟人说话,实在有点不好意思开口,犹豫了半天是不是干脆去垃圾车那淘。还好有个善解人意的大妈从我渴望的眼神中看穿了我的企图,她喊我:"要煤灰?养猫?"我忙不迭的点头,她就慷慨的一挥手,"来拿,要多少都行。"我感动的稀里哗啦的,上去抖开了袋子就塞,大妈看我手笨,还递过来把火钳,唉,周到。
我把煤灰踩碎了铺在簸箕里,放在客厅阳台一角,记得猫好像头一次认准了在哪大小便,以后就很难改了,所以我就一路跟着小奶猫,看它什么时候有尿欲,随时准备在那一刻把它抓到阳台上去。结果一直到我晚上准备睡觉,小奶猫也没排泄,算了,我没耐性继续盯着它了,我把它放阳台上,倒了牛奶给它,趁它喝奶的时候回我那屋爬上床准备睡了。
刚躺下,就听见小猫奶声奶气的叫,好像很害怕,也不知怎么了。我正打算起来看,看见它跑进我屋里,一直跑到我床头,看着我使劲叫。干嘛,想上来?我可不想惯你这毛病。结果小猫自己使劲一跳,抓住了床单下摆,一步一步自己爬上来了,这倒让我很是吃惊。它爬上来之后就钻到我脖子那,把小脑袋枕到我枕头上,好像睡觉也得跟我一样姿势。有时候可能做的再多,也换不来一个人对自己这么亲近,不过那时候我肯定没意识到这些有多可贵。
第二天早上醒了,小猫已经在地上滚来滚去的咬我的鞋了,难道不觉得臭么。我起来洗漱,看见牛奶少了不少,半夜估计还跑出来喝奶了,喝这么多怎么不尿呢,反正也要迟到了,干脆再盯一会吧。果然,小猫突然跑到我和李凌的电脑桌中间那块报纸上,一边喵喵叫,一边就蹲下去了,我立即就反应过来是怎么回事了,一个箭步冲过去,抓着它后脖子提起来,不过已经晚了,小猫在我手上就像个浇花的洒水壶一样……
我把洒水壶放在簸箕上,看着它本能的去埋好,这下小猫算是安居了,而且被我识别出了性别为男性,不过还没有名字,除了我叫它蠢猫,大家还是叫它咪咪的多,小赵mm虽然给它起了名字叫布丁,可没人遵行,随着小猫一天天变得淘气顽劣,蠢猫这个称谓逐渐被淘汰了,李凌对于它的淘气又恨又爱,于是小猫成了"小混蛋"。
初中时的数学老师说,天底下2种人最麻烦,老幺和独生子。随着我一年年老去,也一点点领会着他没说出口的那半截话。虽说4年大学生活能在无限肮脏和杂乱里混完,让我生活能够基本自理,也让我信心满满的以为完全可以照顾好一头刚断奶的小猫。实际上小混蛋的生活虽然跟我过得多姿多彩,却绝对没被照顾好。
起先我坚持人吃什么猫吃什么,这是我老妈的原则。不过这原则完全没执行就放弃了。原因很简单,我的生活完全无规律,不知道什么时候有吃的,也不知道吃的是什么。以前下班晚了,直奔徐家庄烤肉摊,一盘炒面,一把烤肉,一瓶冷饮,10块钱打发了,这些吃的,且不说小混蛋拒绝吃,它吃我还怕吃坏了它。这么一来只好来人工调配,火腿肠+牛奶。这也没坚持多久,我总抢它的存粮,没办法,小混蛋,你爹我也饿啊。最后,只好买猫粮了。头一次买回来之后,我也尝了一颗,唉,不怎么好吃,好了,以后不会跟你抢了。
不过猫粮可不便宜,那时候我比现在还穷,就不怎么舍得给小混蛋吃,小家伙长得快,胃口也呼呼得涨,我口袋里的钱也不见多。结果就是我老人家和小混蛋随时都处于饥饿状态。当然我对于饥饿的应对方式很简单,用精神食粮填补,饿了我就打打游戏,看看书,写写程序。小混蛋也有它的方式,咬咬电线,撕撕报纸,扯扯塑料袋……
小猫的发泄方式自然有副作用,我倒是担心过一阵子它被电击致死,不过屋里的电线质量还算过得去,所以它的发泄引发的最大恶果就是遭李凌"毒打"。李凌同学那时候每天早8:30-晚8:30在民族软件的脊梁卖命,时不时还要借出差为由云游四海1-3个月不等,当我俩都在电脑前发愤的时候,无所事事的小猫只好走到电脑后那片各种电线纵横交错的区域,随便捏一根使劲撕咬,来填补饥饿的心灵,或是趴在键盘后面,聚精会神的看着我抽筋般敲动的手指,然后伸爪打乱我抽筋的节奏,在我手指上留下几道好奇的抓痕。
假如是后者,顶多被我抓住后颈提到空中,然后被抓住四肢倒悬空中,以头部重击2到3下墙壁,最后被装入正合身的塑料口袋,挂在门把手上,直到自行挣扎脱困。但若不幸咬掉一根电源线,导致正在编撰简历的windows98断电,暴怒的李凌就会将一张报纸卷为棍棒状,将小混蛋按在地板上狂打。
2个单身汉对于小猫的思想品德教育无疑是失败的,小混蛋的各种乖张习性都印证了这一点。它开始仇视各种塑料袋和纸张,尤其报纸和卫生纸卷,也从来不肯让人抱。我经常下班回来惊异的发现屋里延绵数十米的手纸报纸碎片,千疮百孔的塑料袋,和一只疯狂且饥饿的小猫。很显然,我们对这个失败的教育案例也是心存愧疚的。李凌大学宿舍的老大从新疆来访那次,极爱猫的他抱着小猫抚摸不止,他说:"猫要有名字的,不然乱叫它就不知道人在叫谁。"我俩连连点头称是,他继续说:"它叫什么名字?"我怯怯的低语,"这个……叫布丁,不过一般……不叫……"李凌则狗腿状陪笑道:"一般……叫它……小混蛋……"
快乐的日子一天天过去,小猫变大了,也更淘气了,不会再奶声奶气的叫,也几乎没了恐惧和害怕。然而我的事情似乎不那么顺利,我心情也总是不太好,那时的我,程序内的问题能解决的不多,程序外的问题基本不能解决。我越来越多的忘记给小猫喂食和换灰,它会在我吃泡面的时候跳上茶几舔面碗中的汤,零食薯片和锅巴它也要和我一起分享。我觉得自己想要离开那个环境,却不知道该去哪里,我开始学习java,却是在一种压抑的状态下。
布丁已经不需要一步步的爬上床来,晚上我看书的时候,它在对面的床上蹦跳着,抓我床头灯照射下映在墙上的影子,那些放大了的手指和头发,引得它一次次扑下床去。天冷了,没有暖气,需要盖被了,等我熄灯睡觉的时候,它跑来,钻进被窝,再把头伸出来,枕在枕头上,几个月以来都是这样,有时晚上我翻身压到它,它会嘶哑困倦的叫一声,像是抱怨。
然而我一天比一天睡得晚,我心里似乎压抑的事情越来越多。终于到了它想睡的时候,我还在看书。它跑过来,想要钻进被子里,烦躁的我头一次动手打了它,出手很重。它看着我叫了几声,就跑到客厅去了。过了一会,我平息下来,下了床,去客厅找它,它团成一团缩在沙发上,看到我出来,就委屈的叫了一声,然后低头,我把它抱回床上,好像就都过去了,对它来说。
老妈来我住处看我,和家里冷战了这么久,慢慢也和解了,我不知道该说什么,老妈在洗了我几乎所有的衣物床单,她在屋里来回走着,忙着,小猫就时不时从躲藏的地方冲出来,拍一下她的腿,再躲回去。老妈喜欢这顽劣的小猫,她笑着问我:"我惹到了它了?""我把它带回去吧"我笑笑,还是没说什么。
我们清扫了屋子,意外发现沙发底下小猫的宝库,许多瓶盖和花生米聚成了一堆,还有我的一只袜子,李凌要扫走的时候,小猫跑过来,一边叫着,一边使劲闻着地板,于是给它留下了一个瓶盖,其他财产都充公了。我就要离开了,杨砾说理解我,打消了我心理最后那点顾虑,然后下雪了,老弟过来找我玩,我们在楼下打雪仗,我把小猫装在怀里,它惊恐的看着疯狂又开心的人们,最后我把它也扔在雪里,它陷在雪坑里,瞪大了眼,不敢动。
我收了一些行李,剩下的东西舅舅帮我收,洗衣机,床,电脑。我翻出姐姐给我买的joycarry,那个红绿相间的背包,布丁被我塞进这个包,它害怕了,都不敢叫。我不确定火车上让不让带猫,去坐汽车,它一直没叫,车开了,我拉开一点拉索,看见它瞪大眼看我,然后极力想出来,我不让,它就委屈的叫了一声,前排的妇女吃惊的转头看我,不过什么也没说。
姐来接我,她也极喜欢猫,她说:"让我看看啥样子",我拉开一点拉链,小猫使劲把脑袋探出来,脸颊的毛都紧贴着,脑袋看着尖尖的,它对着姐大声叫,姐高兴的笑着:像个大耗子一样。回了家,我抱着它坐在厨房,妈准备炒菜,跟我说去北京要注意的一些事,我没太听,猫极度惊恐着,它不认识这里,不像小时候那样无知无畏,不管我怎么抚摸都无法让它镇静,青菜下锅时的暴响吓到了它,它从我手里挣扎出去,跳过落地风扇,冲到屋里,跑到床下不肯出来。姐忙着给它准备灰盆和吃的,她看出我担心,说没关系,过几天就好了。
过了几天,我拖一个箱子,头一次去北京。李凌正好出差,我们买到一趟车,他带着个笔记本,电池能用1小时,我们玩了会泡泡龙,没电了。相处半年,那次话大概最少,都不知该说什么。
三个月后,过年,我再回家,布丁已经习惯家里了,不过也不认识我了。它觉得我陌生,距离总保持2米,它和妈妈最亲,妈妈可以抱它,心情好的时候姐姐可以抱它,最怕老爸,它白天蹲在微波炉上,谁关门它就抓谁,除了老爸。晚上我上网,吃姐给我买的锅巴,猛然低头看到它蹲在我脚下,看着我嚼锅巴的嘴,一声不响。我给它锅巴,它低头吃,和以前一样,我摸了摸它,它还是想不起我,也再不会上床睡觉。
其后几年,它都不再亲近我。它已经不会再想起从前,而从前却一直存在在我心里。妈问我它为什么见不得塑料袋和报纸,我仍然不知道该怎么说。姐要生孩子,它被送到姐夫舅舅家,姐舍不得,哭了好几次。后来知道它绝食,跑掉了,姐夫家人一直瞒着,不敢说。妈有次悄悄跟我说起它,说它诡异又聪明,最后叹了口气,说受不了离别,伤了元气,以后再也不养猫。
8年了,我确实很有些想那只淘气的布丁,我愿意一辈子留着对这只猫的所有记忆,不管是快乐的,还是悲伤的。 英雄昨晚回家走到楼下,过来一位英雄,带着美女,英雄说:“午饭老不够吃,以后中午我加大粪吃一斤半”
敬仰的我魂飞魄散。 7月9日 c++ dlopenquick note:
main:
class A
{
public:
static int CreateInstance(){return 0;};
};
plugin.so
int create_A_instance()
{
return A::CreateInstance();
}
...
dlopen(plugin.so, RTLD_NOW ...);
problem: error: unreference symbol _ZN1A14CreateInstanceEv
solution: g++ -o main -rdynamic ...
comment: link option -rdynamic exports execuable symbols for .so to search
dlsym(handle, "create_A_instance");
problem: returns null
solution1: extern "C" int create_A_instance(){...}...
solution2: dlsym(handle, "_ZN17create_A_instanceEv");
comment: symbols will be mangled by cpp compiler, extern "C" to avoid it or load a mangled name.
|
|
|