summaryrefslogtreecommitdiffstats
path: root/mbbsd/assess.c
diff options
context:
space:
mode:
authorvictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-11-20 18:09:33 +0800
committervictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-11-20 18:09:33 +0800
commit8aac813144a26bd5a9e6f89c9e470fff36404183 (patch)
tree2ab22a00f9e208e8a1163e80db63a2258c041fdb /mbbsd/assess.c
parent87936d2c014265f645c0463585270f11b7326d5c (diff)
downloadpttbbs-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.c14
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;\
}