diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-02-08 17:22:12 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-02-08 17:22:12 +0000 |
commit | 1674c21da1f2539806250982dc91ac7ad8a24984 (patch) | |
tree | d444806b3b55b826fe4f3ed3d3840c858e6a3f62 /src | |
parent | b3a880124666297e73f55c73936998810542ec78 (diff) |
Increased how often socket timeout checks occur which will mean flushing write buffers more often
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3142 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/inspircd.cpp | 7 | ||||
-rw-r--r-- | src/userprocess.cpp | 20 |
2 files changed, 19 insertions, 8 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index dc7a1cfb0..80960d151 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -646,6 +646,13 @@ int InspIRCd::Run() DoBackgroundUserStuff(TIME); } + /* Process timeouts on module sockets each time around + * the loop. There shouldnt be many module sockets, at + * most, 20 or so, so this won't be much of a performance + * hit at all. + */ + DoSocketTimeouts(TIME); + /* Call the socket engine to wait on the active * file descriptors. The socket engine has everything's * descriptors in its list... dns, modules, users, diff --git a/src/userprocess.cpp b/src/userprocess.cpp index 259936153..5452b8f9e 100644 --- a/src/userprocess.cpp +++ b/src/userprocess.cpp @@ -259,16 +259,10 @@ void ProcessUser(userrec* cu) } } -/** - * This function is called once a second from the mainloop. - * It is intended to do background checking on all the user structs, e.g. - * stuff like ping checks, registration timeouts, etc. This function is - * also responsible for checking if InspSocket derived classes are timed out. - */ -void DoBackgroundUserStuff(time_t TIME) +void DoSocketTimeouts(time_t TIME) { unsigned int numsockets = module_sockets.size(); - SocketEngine* SE = ServerInstance->SE; + SocketEngine* SE = ServerInstance->SE; for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++) { InspSocket* s = (InspSocket*)*a; @@ -283,6 +277,16 @@ void DoBackgroundUserStuff(time_t TIME) } if (module_sockets.size() != numsockets) break; } +} + +/** + * This function is called once a second from the mainloop. + * It is intended to do background checking on all the user structs, e.g. + * stuff like ping checks, registration timeouts, etc. This function is + * also responsible for checking if InspSocket derived classes are timed out. + */ +void DoBackgroundUserStuff(time_t TIME) +{ CullList* GlobalGoners = new CullList(); for (std::vector<userrec*>::iterator count2 = local_users.begin(); count2 != local_users.end(); count2++) { |