From 290fb53feea76f9749e4630ec71552e41afa59de Mon Sep 17 00:00:00 2001 From: FlavioJS Date: Wed, 9 May 2007 03:18:16 +0000 Subject: * Added Buuyo-Tama's shortlist for send/eof sockets (defined out for now). * Replaced toupper/tolower in ladmin by TOUPPER/TOLOWER defines. Shortlist: It's a list of sockets that have data to send and/or are ready for eof processing. It aims to reduce the amount of time spent on do_sendrecv, where it was spending ~13.5% of execution time on a server with 1k users at WoE. thanks to Buuyo-tama for the profile info and code git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10506 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char_sql/char.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'src/char_sql') diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 6be0d3ece..ff6dcb293 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -1,9 +1,22 @@ // Copyright (c) Athena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder +#include "../common/cbasetypes.h" +#include "../common/utils.h" +#include "../common/strlib.h" +#include "../common/showmsg.h" +#include "../common/db.h" +#include "../common/malloc.h" + +#include "itemdb.h" +#include "inter.h" +#include "int_guild.h" +#include "int_homun.h" +#include "char.h" + #include -#ifdef _WIN32 +#ifdef WIN32 #include #else #include @@ -19,19 +32,6 @@ #include #include -#include "../common/cbasetypes.h" -#include "../common/utils.h" -#include "../common/strlib.h" -#include "../common/showmsg.h" -#include "../common/db.h" -#include "../common/malloc.h" - -#include "itemdb.h" -#include "inter.h" -#include "int_guild.h" -#include "int_homun.h" -#include "char.h" - #ifndef TXT_SQL_CONVERT static struct dbt *char_db_; #endif @@ -1853,7 +1853,7 @@ int parse_tologin(int fd) { // so, if it isn't the login-server, we disconnect the session. //session eof check! if(fd != login_fd) - session[fd]->eof = 1; + set_eof(fd); if(session[fd]->eof) { if (fd == login_fd) { ShowWarning("Connection to login-server lost (connection #%d).\n", fd); @@ -2261,7 +2261,7 @@ int parse_tologin(int fd) { } default: ShowError("Unknown packet 0x%04x from login server, disconnecting.\n", RFIFOW(fd, 0)); - session[fd]->eof = 1; + set_eof(fd); return 0; } } @@ -2453,7 +2453,7 @@ int parse_frommap(int fd) if (server_fd[id] == fd) break; if(id == MAX_MAP_SERVERS) - session[fd]->eof = 1; + set_eof(fd); if(session[fd]->eof) { if (id < MAX_MAP_SERVERS) { unsigned char buf[16384]; @@ -3092,7 +3092,7 @@ int parse_frommap(int fd) // no inter server packet. no char server packet -> disconnect ShowError("Unknown packet 0x%04x from map server, disconnecting.\n", RFIFOW(fd,0)); - session[fd]->eof = 1; + set_eof(fd); return 0; } } @@ -3157,7 +3157,7 @@ int parse_char(int fd) sd = (struct char_session_data*)session[fd]->session_data; if(login_fd < 0) - session[fd]->eof = 1; + set_eof(fd); if(session[fd]->eof) { // disconnect any player (already connected to char-server or coming back from map-server) if login-server is diconnected. if (fd == login_fd) login_fd = -1; @@ -3582,7 +3582,7 @@ int parse_char(int fd) } case 0x7532: // disconnect(default also disconnect) default: - session[fd]->eof = 1; + set_eof(fd); return 0; } } -- cgit v1.2.3-70-g09d2