summaryrefslogtreecommitdiff
path: root/indra/llcommon/lleventfilter.h
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2016-05-06 11:00:47 -0400
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2016-05-06 11:00:47 -0400
commit2d8b53854ebc1db5cceda1e1b5d6abbbc6c08728 (patch)
tree56388b12b66b42059841faeadac6f110abc18d21 /indra/llcommon/lleventfilter.h
parente0cb5438a5055c71191c6ae6b27c7dee63e40562 (diff)
parent94559950a2c670990db56bd74e65d26652421b8c (diff)
merge
Diffstat (limited to 'indra/llcommon/lleventfilter.h')
-rwxr-xr-xindra/llcommon/lleventfilter.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h
index e822a664f5..66f3c14869 100755
--- a/indra/llcommon/lleventfilter.h
+++ b/indra/llcommon/lleventfilter.h
@@ -49,6 +49,9 @@ public:
/// Post an event to all listeners
virtual bool post(const LLSD& event) = 0;
+
+private:
+ LLTempBoundListener mSource;
};
/**
@@ -181,11 +184,23 @@ protected:
private:
bool tick(const LLSD&);
- LLBoundListener mMainloop;
+ LLTempBoundListener mMainloop;
Action mAction;
};
-/// Production implementation of LLEventTimoutBase
+/**
+ * Production implementation of LLEventTimoutBase.
+ *
+ * @NOTE: Caution should be taken when using the LLEventTimeout(LLEventPump &)
+ * constructor to ensure that the upstream event pump is not an LLEventMaildrop
+ * or any other kind of store and forward pump which may have events outstanding.
+ * Using this constructor will cause the upstream event pump to fire any pending
+ * events and could result in the invocation of a virtual method before the timeout
+ * has been fully constructed. The timeout should instead be connected upstream
+ * from the event pump and attached using the listen method.
+ * See llcoro::suspendUntilEventOnWithTimeout() for an example.
+ */
+
class LL_COMMON_API LLEventTimeout: public LLEventTimeoutBase
{
public: