From 5a1bca16fc455ebc5d61cdec42c3057c816ecfbd Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Wed, 28 Jan 2004 01:43:28 +0000 Subject: [PATCH] get_global_event_queue() --- panda/src/event/eventQueue.cxx | 14 ++++++++++++-- panda/src/event/eventQueue.h | 5 ++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/panda/src/event/eventQueue.cxx b/panda/src/event/eventQueue.cxx index f475a39e11..84f3def637 100644 --- a/panda/src/event/eventQueue.cxx +++ b/panda/src/event/eventQueue.cxx @@ -47,9 +47,18 @@ EventQueue:: //////////////////////////////////////////////////////////////////// void EventQueue:: queue_event(CPT_Event event) { -#ifdef OLD_HAVE_IPC + nassertv(!event.is_null()); + #ifdef OLD_HAVE_IPC mutex_lock lock(_lock); -#endif + #endif + #if 0 + // This is just some paranoid debug code. I had a problem where + // one of the events was going null while it was in the queue. + size_t limit = _queue.size(); + while (limit--) { + nassertv(!_queue[limit].is_null()); + } + #endif if (_queue.full()) { event_cat.error() << "Ignoring event " << *event << "; event queue full.\n"; @@ -109,6 +118,7 @@ dequeue_event() { // thread extracting events. The magic of circular buffers. CPT_Event result = _queue.front(); _queue.pop_front(); + nassertr(!result.is_null(), result); return result; } diff --git a/panda/src/event/eventQueue.h b/panda/src/event/eventQueue.h index b594ff87cd..45e8b9618c 100644 --- a/panda/src/event/eventQueue.h +++ b/panda/src/event/eventQueue.h @@ -24,7 +24,7 @@ #include "event.h" #include "pt_Event.h" -#include +#include "circBuffer.h" #ifdef OLD_HAVE_IPC #include @@ -52,8 +52,7 @@ PUBLISHED: bool is_queue_full() const; CPT_Event dequeue_event(); - INLINE static EventQueue * - get_global_event_queue(); + INLINE static EventQueue *get_global_event_queue(); protected: CircBuffer _queue;