From e0dcf5570387566a77152426639574a4cc7df6fb Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Fri, 23 Dec 2011 12:16:36 +0100 Subject: [PATCH] Make love.event.clear thread-safe, though it's only callable from the main thread (with SDL backend, anyway) --- src/modules/event/Event.cpp | 10 ++++++++++ src/modules/event/Event.h | 1 + src/modules/event/sdl/Event.cpp | 6 +----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/modules/event/Event.cpp b/src/modules/event/Event.cpp index 0ba1c1e48..61f7c972d 100644 --- a/src/modules/event/Event.cpp +++ b/src/modules/event/Event.cpp @@ -99,6 +99,16 @@ namespace event return true; } + void Event::clear() + { + Lock lock(mutex); + while (!queue.empty()) + { + queue.back()->release(); + queue.pop(); + } + } + bool Event::getConstant(const char * in, love::mouse::Mouse::Button & out) { return buttons.find(in, out); diff --git a/src/modules/event/Event.h b/src/modules/event/Event.h index 7a738195b..feff4b509 100644 --- a/src/modules/event/Event.h +++ b/src/modules/event/Event.h @@ -58,6 +58,7 @@ namespace event void push(Message *msg); bool poll(Message *&msg); + virtual void clear(); virtual void pump() = 0; diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index 4c4472689..d92eafa2e 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -77,11 +77,7 @@ namespace sdl // Do nothing with 'e' ... } - while (!queue.empty()) - { - queue.back()->release(); - queue.pop(); - } + love::event::Event::clear(); } Message *Event::convert(SDL_Event & e)