From 8aac813144a26bd5a9e6f89c9e470fff36404183 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 20 Nov 2004 10:09:33 +0000 Subject: fix race of assession note that SHM_t was modified git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2341 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/assess.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/assess.c b/mbbsd/assess.c index 489054d4..ae5c43a2 100644 --- a/mbbsd/assess.c +++ b/mbbsd/assess.c @@ -14,16 +14,16 @@ inline static void inc(unsigned char *num, int n) (*num) += n; } -/* FIXME race occurs when he's online. - * passwd_update in mbbsd.c:u_exit() override the later value. */ -#define modify_column(name) \ -int inc_##name(char *userid, int num) \ +#define modify_column(_attr) \ +int inc_##_attr(char *userid, int num) \ { \ int uid = getuser(userid);\ if(uid>0 ){ \ - inc(&xuser.name, num); \ - passwd_update(uid, &xuser); \ - return xuser.name; }\ + userinfo_t *uinfo = search_ulistn(uid); \ + inc(&uinfo->_attr, num); \ + inc(&xuser._attr, num); \ + passwd_update(uid, &xuser); \ + return xuser._attr; }\ return 0;\ } -- cgit v1.2.3