summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/clif.cpp6
-rw-r--r--src/mmo/socket.hpp2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/map/clif.cpp b/src/map/clif.cpp
index a7dcb52..ea92d15 100644
--- a/src/map/clif.cpp
+++ b/src/map/clif.cpp
@@ -1098,8 +1098,6 @@ void clif_quitsave(Session *, dumb_ptr<map_session_data> sd)
static
void clif_waitclose(TimerData *, tick_t, Session *s)
{
- // TODO: what happens if the player disconnects
- // and someone else connects?
if (s)
s->eof = 1;
}
@@ -1110,10 +1108,10 @@ void clif_waitclose(TimerData *, tick_t, Session *s)
*/
void clif_setwaitclose(Session *s)
{
- Timer(gettick() + std::chrono::seconds(5),
+ s->timed_close = Timer(gettick() + std::chrono::seconds(5),
std::bind(clif_waitclose, ph::_1, ph::_2,
s)
- ).detach();
+ );
}
/*==========================================
diff --git a/src/mmo/socket.hpp b/src/mmo/socket.hpp
index 3b411e3..256c08b 100644
--- a/src/mmo/socket.hpp
+++ b/src/mmo/socket.hpp
@@ -61,6 +61,8 @@ struct Session
/// Flag needed since structure must be freed in a server-dependent manner
bool eof;
+ /// Currently used by clif_setwaitclose
+ Timer timed_close;
/// Since this is a single-threaded application, it can't block
/// These are the read/write queues