summaryrefslogtreecommitdiffstats
path: root/libmail/runlater.C
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/runlater.C')
-rw-r--r--libmail/runlater.C49
1 files changed, 49 insertions, 0 deletions
diff --git a/libmail/runlater.C b/libmail/runlater.C
new file mode 100644
index 0000000..e206c3f
--- /dev/null
+++ b/libmail/runlater.C
@@ -0,0 +1,49 @@
+/*
+** Copyright 2002, Double Precision Inc.
+**
+** See COPYING for distribution information.
+*/
+#include "libmail_config.h"
+#include "runlater.H"
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
+std::queue<mail::ptr<mail::runLater> > mail::runLater::runningLater;
+
+mail::runLater::runLater()
+{
+}
+
+mail::runLater::~runLater()
+{
+}
+
+void mail::runLater::RunLater()
+{
+ runningLater.push(this);
+}
+
+void mail::runLater::checkRunLater(int &timeout)
+{
+ mail::runLater *ptr;
+
+ while (!runningLater.empty())
+ {
+ ptr=runningLater.front();
+ runningLater.pop();
+
+ if (ptr)
+ {
+ timeout=0;
+ ptr->RunningLater();
+ }
+ }
+}