diff options
author | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-11-20 18:09:33 +0800 |
---|---|---|
committer | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-11-20 18:09:33 +0800 |
commit | 8aac813144a26bd5a9e6f89c9e470fff36404183 (patch) | |
tree | 2ab22a00f9e208e8a1163e80db63a2258c041fdb /mbbsd/assess.c | |
parent | 87936d2c014265f645c0463585270f11b7326d5c (diff) | |
download | pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.tar pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.tar.gz pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.tar.bz2 pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.tar.lz pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.tar.xz pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.tar.zst pttbbs-8aac813144a26bd5a9e6f89c9e470fff36404183.zip |
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
Diffstat (limited to 'mbbsd/assess.c')
-rw-r--r-- | mbbsd/assess.c | 14 |
1 files changed, 7 insertions, 7 deletions
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;\ } |