- 主题:有没有统计已注册用户数的代码?
我只有在countidnumber的时候有可能给idnumber赋值……这么还是把它锁掉吧,保险点
update_user里对uidshm的更新是memcpy的,但其本身没有锁ucache,是不是在调用处锁
的?还是update本身不用锁?
【 在 atppp (Big Mouse) 的大作中提到: 】
: 如果可能有多个进程同时在执行idnumber++就要锁,否则就无所谓,看你怎么设计的了
--
FROM 211.151.95.*
好像ucache.c里有处是先lock再update_user的,看来不能锁……
【 在 atppp (Big Mouse) 的大作中提到: 】
: memcpy不是原子的,理论上应该是要锁的吧。不过这地方出错的概率很小吧,
: 也许因此就没锁。
--
FROM 211.151.95.*
郁闷了……加了个uidshm->idnumber++;就会出现“由于某些系统原因”了
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 好像ucache.c里有处是先lock再update_user的,看来不能锁……
--
FROM 211.151.95.*
我也用memcpy来实现它看看吧。那么读这个变量的时候是无需lock了吧??
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 郁闷了……加了个uidshm->idnumber++;就会出现“由于某些系统原因”了
--
FROM 211.151.95.*
在update_user里加了个uidshm->idnumber += 1;发现每注册一个ID idnumber会加2……
最终决定在load和flush ucache的时候统计一下算了,这样就等于每天更新一次已有账
号数了
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 我也用memcpy来实现它看看吧。那么读这个变量的时候是无需lock了吧??
--
FROM 211.151.95.*
仔细查了下代码……原来用到update_user的地方如此之多……idnumber不能在这里加了
等有空了把idnumber+1写到new_register里去再试,现在就先这么着了,周末移站。
谢谢大家的帮助~~!!有空到枫林指南站来玩~~~ //bow
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 在update_user里加了个uidshm->idnumber += 1;发现每注册一个ID idnumber会加2……
: 最终决定在load和flush ucache的时候统计一下算了,这样就等于每天更新一次已有账
: 号数了
: ...................
--
FROM 211.151.95.*
改了userd,成功了,哈哈,HAPPY~~~谢谢!
主要以前在给FBNT做维护,似乎没有这么些守护进程,一时间还没转变过来
【 在 atppp (Big Mouse) 的大作中提到: 】
: miscd userd是负责new和del用户的,那个地方++/--的话估计应该可以吧?
--
修改:cometcaptor FROM 211.151.95.*
FROM 211.151.95.*