From af4fcde1441db15ab1365ef724196d3351a050b9 Mon Sep 17 00:00:00 2001 From: scw Date: Wed, 18 Feb 2004 13:39:47 +0000 Subject: Opening wrong file. Remove the code and leave the racing. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1543 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index b6bb9e52..44003d91 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -1485,7 +1485,9 @@ do_add_recommend(char *direct, fileheader_t *fhdr, int ent, char *buf) return -1; } - get_record(path, fhdr, sizeof(fhdr), ent); + /* get_record(direct, fhdr, sizeof(fhdr), ent); + * This is a solution to avoid most racing (still some), but cost four + * system calls. */ if( fhdr->recommend < 100 ){ fileheader_t t; @@ -1494,10 +1496,9 @@ do_add_recommend(char *direct, fileheader_t *fhdr, int ent, char *buf) ++(fhdr->recommend); if( lseek(fd, (off_t)(sizeof(*fhdr) * (ent - 1) + - (int)&t.recommend - (int)&t), - SEEK_SET) < 0 || - write(fd, &fhdr->recommend, sizeof(char)) ) - ; // 如果 lseek 失敗就不會 write + (int)&t.recommend - (int)&t), SEEK_SET) >= 0) + // 如果 lseek 失敗就不會 write + write(fd, &fhdr->recommend, sizeof(char)); close(fd); touchdircache(currbid); -- cgit v1.2.3