diff --git a/v2/docs/html/doxygen_crawl.html b/v2/docs/html/doxygen_crawl.html
index 8750c1eba..8c1f88262 100644
--- a/v2/docs/html/doxygen_crawl.html
+++ b/v2/docs/html/doxygen_crawl.html
@@ -53,8 +53,8 @@
-
+
@@ -70,8 +70,8 @@
-
+
@@ -82,8 +82,8 @@
-
+
@@ -105,8 +105,8 @@
-
+
@@ -115,8 +115,8 @@
-
+
@@ -137,9 +137,9 @@
-
+
@@ -185,17 +185,18 @@
-
+
+
-
-
+
+
-
+
@@ -203,7 +204,6 @@
-
@@ -213,12 +213,12 @@
-
-
-
+
+
+
@@ -236,18 +236,18 @@
+
-
+
+
+
-
-
-
@@ -275,12 +275,12 @@
-
+
-
+
@@ -301,33 +301,33 @@
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
-
-
-
+
+
+
@@ -336,33 +336,33 @@
-
-
+
+
-
-
-
+
-
-
-
+
+
+
+
+
-
-
-
+
+
+
@@ -372,31 +372,31 @@
-
+
+
+
-
-
-
-
-
-
+
+
+
+
-
+
-
+
-
+
@@ -415,36 +415,36 @@
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
-
+
-
-
-
-
+
+
+
+
@@ -452,17 +452,17 @@
+
-
-
-
+
+
-
+
-
+
@@ -551,19 +551,19 @@
-
+
+
+
-
-
-
+
-
+
@@ -573,11 +573,11 @@
-
-
+
+
@@ -591,13 +591,13 @@
-
-
-
-
+
+
+
+
@@ -613,51 +613,51 @@
-
-
-
-
-
-
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
-
-
-
-
-
+
+
+
+
+
@@ -668,19 +668,19 @@
-
-
+
+
+
-
-
+
@@ -688,17 +688,17 @@
-
-
+
+
-
+
@@ -706,9 +706,9 @@
+
-
diff --git a/v2/docs/html/main__thread_8hpp_source.html b/v2/docs/html/main__thread_8hpp_source.html
index 59fea47e0..b46dcabb5 100644
--- a/v2/docs/html/main__thread_8hpp_source.html
+++ b/v2/docs/html/main__thread_8hpp_source.html
@@ -118,48 +118,79 @@
15#include <rppqt/schedulers/fwd.hpp>
16#include <rppqt/utils/exceptions.hpp>
- 18#include <QCoreApplication>
-
-
-
-
- 23namespace rppqt::schedulers
-
-
-
-
-
-
-
-
-
-
36 static void defer_for(rpp::schedulers::duration duration, Fn&& fn, Handler&& handler, Args&&... args)
-
-
38 const auto application = QCoreApplication::instance();
-
-
-
-
42 QTimer::singleShot(std::chrono::duration_cast<std::chrono::milliseconds>(duration), application, [fn = std::forward<Fn>(fn), handler = std::forward<Handler>(handler), ... args = std::forward<Args>(args)]()
mutable {
-
43 if (
const auto new_duration = fn(handler, args...))
-
44 defer_for(new_duration->value, std::move(fn), std::move(handler), std::move(args)...);
-
-
-
-
-
-
50 static rpp::schedulers::time_point now() {
return rpp::schedulers::clock_type::now(); }
-
+
18#include "rpp/schedulers/fwd.hpp"
+
+
20#include <QCoreApplication>
+
+
+
+
+
25namespace rppqt::schedulers
+
+
+
+
+
+
+
+
+
+
38 static void defer_for(rpp::schedulers::duration duration, Fn&& fn, Handler&& handler, Args&&... args)
+
+
40 const auto application = QCoreApplication::instance();
+
+
+
43 handler.on_error(std::make_exception_ptr(
utils::no_active_qapplication{
"Pointer to application is null. Create QApplication before using main_thread_scheduler!"}));
+
+
+
+
47 QTimer::singleShot(std::chrono::duration_cast<std::chrono::milliseconds>(duration), application, [fn = std::forward<Fn>(fn), handler = std::forward<Handler>(handler), ... args = std::forward<Args>(args)]()
mutable {
+
48 if (!handler.is_disposed())
+
49 invoke(std::move(fn), std::move(handler), std::move(args)...);
+
+
-
-
54 static auto create_worker()
-
-
-
-
+
+
+
55 static rpp::schedulers::time_point now() {
return rpp::schedulers::clock_type::now(); }
+
+
+
+
59 static void invoke(Fn&& fn, Handler&& handler, Args&&... args)
+
+
61 if (
const auto new_duration = fn(handler, args...))
+
62 defer_for(new_duration->value, std::forward<Fn>(fn), std::forward<Handler>(handler), std::forward<Args>(args)...);
+
+
+
+
66 static void invoke(Fn&& fn, Handler&& handler, Args&&... args)
+
+
68 const auto now = rpp::schedulers::clock_type::now();
+
69 if (
const auto new_duration = fn(handler, args...))
+
70 defer_for(now + new_duration->value - rpp::schedulers::clock_type::now(), std::forward<Fn>(fn), std::forward<Handler>(handler), std::forward<Args>(args)...);
+
+
+
+
74 static void invoke(Fn&& fn, Handler&& handler, Args&&... args)
+
+
76 if (
const auto new_tp = fn(handler, args...))
+
77 defer_for(new_tp->value - rpp::schedulers::clock_type::now(), std::forward<Fn>(fn), std::forward<Handler>(handler), std::forward<Args>(args)...);
+
+
+
+
+
82 static auto create_worker()
+
+
+
+
-
+
-
Schedule provided schedulables to main GUI QT thread (where QApplication placed)
Definition main_thread.hpp:30
+
Schedule provided schedulables to main GUI QT thread (where QApplication placed)
Definition main_thread.hpp:32
+
+
+
diff --git a/v2/docs/latex/classrpp_1_1blocking__observable.pdf b/v2/docs/latex/classrpp_1_1blocking__observable.pdf
index 1082949af..f270158c9 100644
Binary files a/v2/docs/latex/classrpp_1_1blocking__observable.pdf and b/v2/docs/latex/classrpp_1_1blocking__observable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1callback__disposable.pdf b/v2/docs/latex/classrpp_1_1callback__disposable.pdf
index e076a5337..3e41b7ada 100644
Binary files a/v2/docs/latex/classrpp_1_1callback__disposable.pdf and b/v2/docs/latex/classrpp_1_1callback__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1composite__disposable.pdf b/v2/docs/latex/classrpp_1_1composite__disposable.pdf
index 95cdac290..3f8b881f6 100644
Binary files a/v2/docs/latex/classrpp_1_1composite__disposable.pdf and b/v2/docs/latex/classrpp_1_1composite__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1composite__disposable__impl.pdf b/v2/docs/latex/classrpp_1_1composite__disposable__impl.pdf
index c214a39aa..b3703bc74 100644
Binary files a/v2/docs/latex/classrpp_1_1composite__disposable__impl.pdf and b/v2/docs/latex/classrpp_1_1composite__disposable__impl.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1details_1_1base__disposable__impl.pdf b/v2/docs/latex/classrpp_1_1details_1_1base__disposable__impl.pdf
index a09348b30..dc1a91472 100644
Binary files a/v2/docs/latex/classrpp_1_1details_1_1base__disposable__impl.pdf and b/v2/docs/latex/classrpp_1_1details_1_1base__disposable__impl.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1details_1_1disposable__wrapper__base.pdf b/v2/docs/latex/classrpp_1_1details_1_1disposable__wrapper__base.pdf
index a6068a2f6..c751ea7a7 100644
Binary files a/v2/docs/latex/classrpp_1_1details_1_1disposable__wrapper__base.pdf and b/v2/docs/latex/classrpp_1_1details_1_1disposable__wrapper__base.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container.pdf b/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container.pdf
index 9ef6cd164..94d598fda 100644
Binary files a/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container.pdf and b/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container__base.pdf b/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container__base.pdf
index 033351c9c..4cd94f8d0 100644
Binary files a/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container__base.pdf and b/v2/docs/latex/classrpp_1_1details_1_1disposables_1_1dynamic__disposables__container__base.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1details_1_1observables_1_1blocking__disposble.pdf b/v2/docs/latex/classrpp_1_1details_1_1observables_1_1blocking__disposble.pdf
index 9d3116520..b32dbbd46 100644
Binary files a/v2/docs/latex/classrpp_1_1details_1_1observables_1_1blocking__disposble.pdf and b/v2/docs/latex/classrpp_1_1details_1_1observables_1_1blocking__disposble.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1details_1_1refocunt__disposable__inner.pdf b/v2/docs/latex/classrpp_1_1details_1_1refocunt__disposable__inner.pdf
index 92c849029..d5d547b74 100644
Binary files a/v2/docs/latex/classrpp_1_1details_1_1refocunt__disposable__inner.pdf and b/v2/docs/latex/classrpp_1_1details_1_1refocunt__disposable__inner.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1disposable__wrapper__impl.pdf b/v2/docs/latex/classrpp_1_1disposable__wrapper__impl.pdf
index f7dc6ba2a..3546f2ba5 100644
Binary files a/v2/docs/latex/classrpp_1_1disposable__wrapper__impl.pdf and b/v2/docs/latex/classrpp_1_1disposable__wrapper__impl.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1dynamic__observable.pdf b/v2/docs/latex/classrpp_1_1dynamic__observable.pdf
index 3db271fbc..2dfe35be1 100644
Binary files a/v2/docs/latex/classrpp_1_1dynamic__observable.pdf and b/v2/docs/latex/classrpp_1_1dynamic__observable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1dynamic__observer.pdf b/v2/docs/latex/classrpp_1_1dynamic__observer.pdf
index 4bd8231b0..61d1f6106 100644
Binary files a/v2/docs/latex/classrpp_1_1dynamic__observer.pdf and b/v2/docs/latex/classrpp_1_1dynamic__observer.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1grouped__observable.pdf b/v2/docs/latex/classrpp_1_1grouped__observable.pdf
index 455b01ff1..381cfe788 100644
Binary files a/v2/docs/latex/classrpp_1_1grouped__observable.pdf and b/v2/docs/latex/classrpp_1_1grouped__observable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1observable.pdf b/v2/docs/latex/classrpp_1_1observable.pdf
index 4d898ac7f..7fde966ea 100644
Binary files a/v2/docs/latex/classrpp_1_1observable.pdf and b/v2/docs/latex/classrpp_1_1observable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1observer.pdf b/v2/docs/latex/classrpp_1_1observer.pdf
index 48fd654cc..ac81999f2 100644
Binary files a/v2/docs/latex/classrpp_1_1observer.pdf and b/v2/docs/latex/classrpp_1_1observer.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01details_1_1with__disposable__strategy_3_01_strategy_00_01_disposable_strategy_01_4_01_4.pdf b/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01details_1_1with__disposable__strategy_3_01_strategy_00_01_disposable_strategy_01_4_01_4.pdf
index 51fdd2015..b1d7379f4 100644
Binary files a/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01details_1_1with__disposable__strategy_3_01_strategy_00_01_disposable_strategy_01_4_01_4.pdf and b/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01details_1_1with__disposable__strategy_3_01_strategy_00_01_disposable_strategy_01_4_01_4.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01rpp_1_1details_1_1observers_1_1dynamic__strategy_3_01_type_01_4_01_4.pdf b/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01rpp_1_1details_1_1observers_1_1dynamic__strategy_3_01_type_01_4_01_4.pdf
index 3ecf04c9d..3e0fa218c 100644
Binary files a/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01rpp_1_1details_1_1observers_1_1dynamic__strategy_3_01_type_01_4_01_4.pdf and b/v2/docs/latex/classrpp_1_1observer_3_01_type_00_01rpp_1_1details_1_1observers_1_1dynamic__strategy_3_01_type_01_4_01_4.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combine__latest__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combine__latest__disposable.pdf
index 8d2a16cd8..c68f119bf 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combine__latest__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combine__latest__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combining__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combining__disposable.pdf
index 141090b3d..c52e03a48 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combining__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1combining__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1concat__state__t.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1concat__state__t.pdf
index 4e9c84420..5e583d5a0 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1concat__state__t.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1concat__state__t.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1debounce__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1debounce__disposable.pdf
index d4a733432..4e22a24f5 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1debounce__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1debounce__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__disposable.pdf
index 886171c18..385ba82be 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__observer__strategy.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__observer__strategy.pdf
index 6b740e52f..84777415e 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__observer__strategy.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1merge__observer__strategy.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1switch__on__next__state__t.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1switch__on__next__state__t.pdf
index 6fd84dc1b..fe841eb72 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1switch__on__next__state__t.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1switch__on__next__state__t.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1take__until__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1take__until__disposable.pdf
index c2298ad36..193840ec2 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1take__until__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1take__until__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1timeout__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1timeout__disposable.pdf
index fcbea3877..c35ac1a1a 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1timeout__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1timeout__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1with__latest__from__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1with__latest__from__disposable.pdf
index 94fe0f9ba..17b8ac9a6 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1with__latest__from__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1with__latest__from__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1zip__disposable.pdf b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1zip__disposable.pdf
index 5d9a105d1..0ed732baa 100644
Binary files a/v2/docs/latex/classrpp_1_1operators_1_1details_1_1zip__disposable.pdf and b/v2/docs/latex/classrpp_1_1operators_1_1details_1_1zip__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1refcount__disposable.pdf b/v2/docs/latex/classrpp_1_1refcount__disposable.pdf
index 41baf6381..d807d19b0 100644
Binary files a/v2/docs/latex/classrpp_1_1refcount__disposable.pdf and b/v2/docs/latex/classrpp_1_1refcount__disposable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1schedulable__base.pdf b/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1schedulable__base.pdf
index db04b9d10..a8e7bab49 100644
Binary files a/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1schedulable__base.pdf and b/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1schedulable__base.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1specific__schedulable.pdf b/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1specific__schedulable.pdf
index 645f5aac5..a18f5e3db 100644
Binary files a/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1specific__schedulable.pdf and b/v2/docs/latex/classrpp_1_1schedulers_1_1details_1_1specific__schedulable.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1subjects_1_1details_1_1subject__state.pdf b/v2/docs/latex/classrpp_1_1subjects_1_1details_1_1subject__state.pdf
index 3944a9974..f3a6a527b 100644
Binary files a/v2/docs/latex/classrpp_1_1subjects_1_1details_1_1subject__state.pdf and b/v2/docs/latex/classrpp_1_1subjects_1_1details_1_1subject__state.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1subjects_1_1publish__subject.pdf b/v2/docs/latex/classrpp_1_1subjects_1_1publish__subject.pdf
index 7d4e899dd..d5c81333e 100644
Binary files a/v2/docs/latex/classrpp_1_1subjects_1_1publish__subject.pdf and b/v2/docs/latex/classrpp_1_1subjects_1_1publish__subject.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1subjects_1_1replay__subject.pdf b/v2/docs/latex/classrpp_1_1subjects_1_1replay__subject.pdf
index db48d5341..c11eddfe4 100644
Binary files a/v2/docs/latex/classrpp_1_1subjects_1_1replay__subject.pdf and b/v2/docs/latex/classrpp_1_1subjects_1_1replay__subject.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1subjects_1_1serialized__publish__subject.pdf b/v2/docs/latex/classrpp_1_1subjects_1_1serialized__publish__subject.pdf
index 34606550e..7a408314e 100644
Binary files a/v2/docs/latex/classrpp_1_1subjects_1_1serialized__publish__subject.pdf and b/v2/docs/latex/classrpp_1_1subjects_1_1serialized__publish__subject.pdf differ
diff --git a/v2/docs/latex/classrpp_1_1subjects_1_1serialized__replay__subject.pdf b/v2/docs/latex/classrpp_1_1subjects_1_1serialized__replay__subject.pdf
index 515333842..a03747617 100644
Binary files a/v2/docs/latex/classrpp_1_1subjects_1_1serialized__replay__subject.pdf and b/v2/docs/latex/classrpp_1_1subjects_1_1serialized__replay__subject.pdf differ
diff --git a/v2/docs/latex/main__thread_8hpp_source.tex b/v2/docs/latex/main__thread_8hpp_source.tex
index 42c49639c..f20b62837 100644
--- a/v2/docs/latex/main__thread_8hpp_source.tex
+++ b/v2/docs/latex/main__thread_8hpp_source.tex
@@ -19,43 +19,71 @@
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\
}\ \textcolor{comment}{//\ own\ forwarding}}
\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ }}
\DoxyCodeLine{00017\ }
-\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ }}
-\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#include\ }}
-\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ }}
-\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#include\ }}
-\DoxyCodeLine{00022\ }
-\DoxyCodeLine{00023\ \textcolor{keyword}{namespace\ }rppqt::schedulers}
-\DoxyCodeLine{00024\ \{}
-\DoxyCodeLine{00029\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classrppqt_1_1schedulers_1_1main__thread__scheduler}{main\_thread\_scheduler}}\ final}
-\DoxyCodeLine{00030\ \ \ \ \ \{}
-\DoxyCodeLine{00031\ \ \ \ \ \textcolor{keyword}{private}:}
-\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ \textcolor{keyword}{class\ }worker\_strategy}
-\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \{}
-\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ \textcolor{keyword}{public}:}
-\DoxyCodeLine{00035\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}<\mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__handler}{rpp::schedulers::constraint::schedulable\_handler}}\ Handler,\ \textcolor{keyword}{typename}...\ Args,\ \mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__fn}{rpp::schedulers::constraint::schedulable\_fn}}\ Fn>}
-\DoxyCodeLine{00036\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ defer\_for(rpp::schedulers::duration\ duration,\ Fn\&\&\ fn,\ Handler\&\&\ handler,\ Args\&\&...\ args)}
-\DoxyCodeLine{00037\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
-\DoxyCodeLine{00038\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ application\ =\ QCoreApplication::instance();}
-\DoxyCodeLine{00039\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!application)}
-\DoxyCodeLine{00040\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}\ \mbox{\hyperlink{structrppqt_1_1utils_1_1no__active__qapplication}{utils::no\_active\_qapplication}}\{\textcolor{stringliteral}{"{}Pointer\ to\ application\ is\ null.\ Create\ QApplication\ before\ using\ main\_thread\_scheduler!"{}}\};}
-\DoxyCodeLine{00041\ }
-\DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ QTimer::singleShot(std::chrono::duration\_cast(duration),\ application,\ [fn\ =\ std::forward(fn),\ handler\ =\ std::forward(handler),\ ...\ args\ =\ std::forward(args)]()\ \textcolor{keyword}{mutable}\ \{}
-\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ new\_duration\ =\ fn(handler,\ args...))}
-\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ defer\_for(new\_duration-\/>value,\ std::move(fn),\ std::move(handler),\ std::move(args)...);}
-\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \});}
-\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
-\DoxyCodeLine{00047\ }
-\DoxyCodeLine{00048\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{constexpr}\ \mbox{\hyperlink{structrpp_1_1schedulers_1_1details_1_1none__disposable}{rpp::schedulers::details::none\_disposable}}\ get\_disposable()\ \{\ \textcolor{keywordflow}{return}\ \{\};\ \}}
-\DoxyCodeLine{00049\ }
-\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ rpp::schedulers::time\_point\ now()\ \{\ \textcolor{keywordflow}{return}\ rpp::schedulers::clock\_type::now();\ \}}
-\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \};}
+\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ "{}rpp/schedulers/fwd.hpp"{}}}
+\DoxyCodeLine{00019\ }
+\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ }}
+\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#include\ }}
+\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#include\ }}
+\DoxyCodeLine{00023\ \textcolor{preprocessor}{\#include\ }}
+\DoxyCodeLine{00024\ }
+\DoxyCodeLine{00025\ \textcolor{keyword}{namespace\ }rppqt::schedulers}
+\DoxyCodeLine{00026\ \{}
+\DoxyCodeLine{00031\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classrppqt_1_1schedulers_1_1main__thread__scheduler}{main\_thread\_scheduler}}\ final}
+\DoxyCodeLine{00032\ \ \ \ \ \{}
+\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keyword}{private}:}
+\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ \textcolor{keyword}{class\ }worker\_strategy}
+\DoxyCodeLine{00035\ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00036\ \ \ \ \ \ \ \ \ \textcolor{keyword}{public}:}
+\DoxyCodeLine{00037\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}<\mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__handler}{rpp::schedulers::constraint::schedulable\_handler}}\ Handler,\ \textcolor{keyword}{typename}...\ Args,\ \mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__fn}{rpp::schedulers::constraint::schedulable\_fn}}\ Fn>}
+\DoxyCodeLine{00038\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ defer\_for(rpp::schedulers::duration\ duration,\ Fn\&\&\ fn,\ Handler\&\&\ handler,\ Args\&\&...\ args)}
+\DoxyCodeLine{00039\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00040\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ application\ =\ QCoreApplication::instance();}
+\DoxyCodeLine{00041\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!application)}
+\DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ handler.on\_error(std::make\_exception\_ptr(\mbox{\hyperlink{structrppqt_1_1utils_1_1no__active__qapplication}{utils::no\_active\_qapplication}}\{\textcolor{stringliteral}{"{}Pointer\ to\ application\ is\ null.\ Create\ QApplication\ before\ using\ main\_thread\_scheduler!"{}}\}));}
+\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};}
+\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00046\ }
+\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ QTimer::singleShot(std::chrono::duration\_cast(duration),\ application,\ [fn\ =\ std::forward(fn),\ handler\ =\ std::forward(handler),\ ...\ args\ =\ std::forward(args)]()\ \textcolor{keyword}{mutable}\ \{}
+\DoxyCodeLine{00048\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!handler.is\_disposed())}
+\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ invoke(std::move(fn),\ std::move(handler),\ std::move(args)...);}
+\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \});}
+\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00052\ }
-\DoxyCodeLine{00053\ \ \ \ \ \textcolor{keyword}{public}:}
-\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{auto}\ create\_worker()}
-\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \{}
-\DoxyCodeLine{00056\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classrpp_1_1schedulers_1_1worker}{rpp::schedulers::worker}}\{\};}
-\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ \}}
-\DoxyCodeLine{00058\ \ \ \ \ \};}
-\DoxyCodeLine{00059\ \}\ \textcolor{comment}{//\ namespace\ rppqt::schedulers}}
+\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{constexpr}\ \mbox{\hyperlink{structrpp_1_1schedulers_1_1details_1_1none__disposable}{rpp::schedulers::details::none\_disposable}}\ get\_disposable()\ \{\ \textcolor{keywordflow}{return}\ \{\};\ \}}
+\DoxyCodeLine{00054\ }
+\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ rpp::schedulers::time\_point\ now()\ \{\ \textcolor{keywordflow}{return}\ rpp::schedulers::clock\_type::now();\ \}}
+\DoxyCodeLine{00056\ }
+\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ \textcolor{keyword}{private}:}
+\DoxyCodeLine{00058\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}<\mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__handler}{rpp::schedulers::constraint::schedulable\_handler}}\ Handler,\ \textcolor{keyword}{typename}...\ Args,\ \mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__delay__from__now__fn}{rpp::schedulers::constraint::schedulable\_delay\_from\_now\_fn}}\ Fn>}
+\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ invoke(Fn\&\&\ fn,\ Handler\&\&\ handler,\ Args\&\&...\ args)}
+\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ new\_duration\ =\ fn(handler,\ args...))}
+\DoxyCodeLine{00062\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ defer\_for(new\_duration-\/>value,\ std::forward(fn),\ std::forward(handler),\ std::forward(args)...);}
+\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00064\ }
+\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}<\mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__handler}{rpp::schedulers::constraint::schedulable\_handler}}\ Handler,\ \textcolor{keyword}{typename}...\ Args,\ \mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__delay__from__this__timepoint__fn}{rpp::schedulers::constraint::schedulable\_delay\_from\_this\_timepoint\_fn}}\ Fn>}
+\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ invoke(Fn\&\&\ fn,\ Handler\&\&\ handler,\ Args\&\&...\ args)}
+\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ now\ =\ rpp::schedulers::clock\_type::now();}
+\DoxyCodeLine{00069\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ new\_duration\ =\ fn(handler,\ args...))}
+\DoxyCodeLine{00070\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ defer\_for(now\ +\ new\_duration-\/>value\ -\/\ rpp::schedulers::clock\_type::now(),\ std::forward(fn),\ std::forward(handler),\ std::forward(args)...);}
+\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00072\ }
+\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{template}<\mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__handler}{rpp::schedulers::constraint::schedulable\_handler}}\ Handler,\ \textcolor{keyword}{typename}...\ Args,\ \mbox{\hyperlink{conceptrpp_1_1schedulers_1_1constraint_1_1schedulable__delay__to__fn}{rpp::schedulers::constraint::schedulable\_delay\_to\_fn}}\ Fn>}
+\DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ invoke(Fn\&\&\ fn,\ Handler\&\&\ handler,\ Args\&\&...\ args)}
+\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00076\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ new\_tp\ =\ fn(handler,\ args...))}
+\DoxyCodeLine{00077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ defer\_for(new\_tp-\/>value\ -\/\ rpp::schedulers::clock\_type::now(),\ std::forward(fn),\ std::forward(handler),\ std::forward(args)...);}
+\DoxyCodeLine{00078\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00079\ \ \ \ \ \ \ \ \ \};}
+\DoxyCodeLine{00080\ }
+\DoxyCodeLine{00081\ \ \ \ \ \textcolor{keyword}{public}:}
+\DoxyCodeLine{00082\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{auto}\ create\_worker()}
+\DoxyCodeLine{00083\ \ \ \ \ \ \ \ \ \{}
+\DoxyCodeLine{00084\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classrpp_1_1schedulers_1_1worker}{rpp::schedulers::worker}}\{\};}
+\DoxyCodeLine{00085\ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00086\ \ \ \ \ \};}
+\DoxyCodeLine{00087\ \}\ \textcolor{comment}{//\ namespace\ rppqt::schedulers}}
\end{DoxyCode}
diff --git a/v2/docs/latex/structrpp_1_1details_1_1concat__state__t.pdf b/v2/docs/latex/structrpp_1_1details_1_1concat__state__t.pdf
index 17d1a7da7..3eaf6f844 100644
Binary files a/v2/docs/latex/structrpp_1_1details_1_1concat__state__t.pdf and b/v2/docs/latex/structrpp_1_1details_1_1concat__state__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1interface__composite__disposable.pdf b/v2/docs/latex/structrpp_1_1interface__composite__disposable.pdf
index aba65c81c..10d19e3fe 100644
Binary files a/v2/docs/latex/structrpp_1_1interface__composite__disposable.pdf and b/v2/docs/latex/structrpp_1_1interface__composite__disposable.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1interface__disposable.pdf b/v2/docs/latex/structrpp_1_1interface__disposable.pdf
index 4110e9eb9..8ee9808de 100644
Binary files a/v2/docs/latex/structrpp_1_1interface__disposable.pdf and b/v2/docs/latex/structrpp_1_1interface__disposable.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1buffer__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1buffer__t.pdf
index 4993cfcae..8e94820c4 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1buffer__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1buffer__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__observer__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__observer__strategy.pdf
index 818976f7a..2f6ad2bfc 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__observer__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__observer__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__t.pdf
index fd78dddbe..6686c3412 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1combine__latest__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__inner__observer__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__inner__observer__strategy.pdf
index 340d0a63d..c2d1f929a 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__inner__observer__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__inner__observer__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy.pdf
index 717b1e6d4..01aee1797 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy__base.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy__base.pdf
index 3097b696f..e76e5bcb1 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy__base.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__observer__strategy__base.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__t.pdf
index 63e63a3ce..17b272c5b 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1concat__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1delay__disposable.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1delay__disposable.pdf
index aeca95c6a..ea4cddd18 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1delay__disposable.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1delay__disposable.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__t.pdf
index ca0a0f8f7..1d7ce5695 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__until__changed__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__until__changed__t.pdf
index 1aa2b4b01..d41ee457b 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__until__changed__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1distinct__until__changed__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1filter__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1filter__t.pdf
index c29e7ef0f..540f66a64 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1filter__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1filter__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1first__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1first__t.pdf
index 918f775bb..818947fc4 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1first__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1first__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1group__by__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1group__by__t.pdf
index 804321a02..1ef9fa521 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1group__by__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1group__by__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1last__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1last__t.pdf
index 9b9ef4c18..2045fcf72 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1last__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1last__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1map__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1map__t.pdf
index 79d4739cd..980b54e7d 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1map__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1map__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__base__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__base__strategy.pdf
index 33a9e5198..084a6d655 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__base__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__base__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__inner__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__inner__strategy.pdf
index 059048c36..fbce9f79c 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__inner__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__observer__inner__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__t.pdf
index 4613b8718..ce52a17a1 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1merge__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1on__error__resume__next__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1on__error__resume__next__t.pdf
index f9c515010..86b686a4e 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1on__error__resume__next__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1on__error__resume__next__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__no__seed__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__no__seed__t.pdf
index ae33d4a1a..8800c6c3a 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__no__seed__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__no__seed__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__t.pdf
index d083f6490..e04c13584 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1reduce__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__no__seed__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__no__seed__t.pdf
index bd7767e21..206e18627 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__no__seed__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__no__seed__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__t.pdf
index 201cf091a..581ad26e2 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1scan__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1skip__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1skip__t.pdf
index 2bcaddbca..f3697ce52 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1skip__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1skip__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1switch__on__next__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1switch__on__next__t.pdf
index e83b9da15..cf4175734 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1switch__on__next__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1switch__on__next__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__last__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__last__t.pdf
index e323bad43..5da854d63 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__last__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__last__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__t.pdf
index 0d440ce48..70aba608f 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy.pdf
index 5c72db120..97f6fe2dc 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy__base.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy__base.pdf
index 321ec0632..96add90b9 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy__base.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__observer__strategy__base.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__throttle__observer__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__throttle__observer__strategy.pdf
index 7c0eed3e9..731807c8b 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__throttle__observer__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__until__throttle__observer__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__while__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__while__t.pdf
index 4fba17ac8..99aa38b34 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__while__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1take__while__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1tap__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1tap__t.pdf
index 57e151a44..28a98e9d6 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1tap__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1tap__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1throttle__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1throttle__t.pdf
index b79e6fb2f..aa473d469 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1throttle__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1throttle__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__t.pdf
index a1c8d59fc..0871e5138 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__toggle__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__toggle__t.pdf
index d491c97eb..c7b47571e 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__toggle__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1window__toggle__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__observer__strategy.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__observer__strategy.pdf
index 8fc5d8d68..b2df19730 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__observer__strategy.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__observer__strategy.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__t.pdf b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__t.pdf
index d39b4c69c..bef548f77 100644
Binary files a/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__t.pdf and b/v2/docs/latex/structrpp_1_1operators_1_1details_1_1zip__t.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker.pdf b/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker.pdf
index 9afaf6cfe..f11d8e098 100644
Binary files a/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker.pdf and b/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker.pdf differ
diff --git a/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker_3_01rpp_1_1schedulers_1_1worker_3_01_strategy_01_4_01_4.pdf b/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker_3_01rpp_1_1schedulers_1_1worker_3_01_strategy_01_4_01_4.pdf
index a2a10aab8..71c85fec6 100644
Binary files a/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker_3_01rpp_1_1schedulers_1_1worker_3_01_strategy_01_4_01_4.pdf and b/v2/docs/latex/structrpp_1_1schedulers_1_1constraint_1_1details_1_1is__worker_3_01rpp_1_1schedulers_1_1worker_3_01_strategy_01_4_01_4.pdf differ
diff --git a/v2/docs/latex/structrppqt_1_1utils_1_1no__active__qapplication.pdf b/v2/docs/latex/structrppqt_1_1utils_1_1no__active__qapplication.pdf
index 7442df38b..0eaadd68f 100644
Binary files a/v2/docs/latex/structrppqt_1_1utils_1_1no__active__qapplication.pdf and b/v2/docs/latex/structrppqt_1_1utils_1_1no__active__qapplication.pdf differ