Age | Commit message (Collapse) | Author |
|
Do not necromance this without going through the go/android-3p process
again.
Test: treehugger
Change-Id: Id813d74d7d2597e0636b925430117c94bea3fa5a
|
|
Using rxcpp::subscriber by-reference in a lambda in the as_blocking
operator would occasionally cause #on_error to crash in std::shared_ptr::get
Bug: 143900063
Change-Id: Ie5b06b1c7872b08f256af569b408ea987d80fae7
|
|
In rare situations the old lifetime.add callback would cause
std::system_error to be thrown after unsubscribing due to
the std::thread being non-joinable.
Bug: 143745681
Change-Id: If64f3eef678ba5246baaca5be06e9d13c799922c
|
|
The existing `connectable_observable.ref_count()` operator calls
connect on the source when it's subscribed to.
Generalize this by allowing an optional parameter `other`, i.e.
`observable.ref_count(connectable_observable other)` to be used as the
connect target.
Useful for implementing diamond graphs while retaining composability:
```
A
/ \
B C
\ /
D
|
E
auto A = ... | publish();
auto B = A | ...;
auto C = A | ...;
auto D = B | merge(C) | ref_count(A);
auto E = D | ...;
E | subscribe(...);
```
Resolves: https://github.com/ReactiveX/RxCpp/issues/484
Pull request: https://github.com/ReactiveX/RxCpp/pull/485
(Need to merge this into AOSP now because it's blocking an android
change).
(cherry picked from commit 77a5b21ac18d4e42a8402176a9b3baf583b7414e)
Change-Id: I9139dbce2c3b0ba4f4ca59b8300d2b4ceaef4855
|
|
composite_subscription_inner had missing checks which could lead to add/remove/clear
racing against unsubscribe.
(See the issue for more details).
Fixes: #475
|
|
This warning is reported by GCC 9.
|
|
|
|
* Minor compilation/test fixes for compiling on android
Change-Id: Id623455d32e9323355744a240c2813d0411d1dac
* Rx: Add support for compiling code without exceptions (-fno-exceptions)
std::exception_ptr usage is replaced with rxcpp::util::error_ptr
which will typedef to std::exception_ptr when exceptions are enabled.
When exceptions are disabled this will typedef to an internal error
type that can retain the "what" error message.
Additionally std::current_exception() and similar usages are replaced
with rxu::current_exception which uses error_ptr instead.
Lastly all try/catch/throw keywords are replaced with either
RXCPP_TRY, RXCPP_CATCH, rxu::throw_exception or similar.
Note that try/catch/throw keywords cause a compilation error with
-fno-exceptions. Trying to access most of the std::*exception* functions
will call std::terminate at runtime.
Tests using exceptions must be disabled by passing --nothrow to the
check2 test runner.
Change-Id: I0b95ae2e323653a17c3b733d165ecf87a014c315
* update to catch2 and add RX_USE_EXCEPTIONS cmake option
* fix bugs in doxygen examples
* replace [[noreturn]] with RXCPP_NORETURN
* removes support for VS 2013
|
|
Building the docs (e.g. with `ninja doc`) failed with GCC (e.g. GCC 7.3
under Fedora 27) with some missing declaration errors.
Example:
../Rx/v2/examples/doxygen/main.cpp:7:13: error: no previous
declaration for ‘std::__cxx11::string get_pid()’
[-Werror=missing-declarations]
Thus, this change adds a shared declaration for `get_pid()` that is
included by all users/the file where it's defined such that
accidental deviation in the signature are immediately noticed (as
compile error).
Similarly, the visibility of the example `less()` is changed to static
as it's only locally used.
With those changes the doc target succeeds again.
|
|
removes spinning from blocking submit. ran all perf tests on osx without issue.
should fix #430 and help with #451
|
|
* adding test for nocompare observe_on notification uses SFINAE to compile for value_types that do not have operator==
* use as_dynamic to avoid vc 2013 bug
|
|
* group_by support DurationSelector
* remove unused names
|
|
- Different run loops can be used with factory calls
|
|
|
|
|
|
|
|
|
|
|
|
* #378 adding skip_while operator
* #378 adding tests + fixing CMakeLists.txt
* #378 test completion
* #378 fix includes
* #378 fix assignment in a condition
* #378 fix assignment in a condition 2
|
|
* Add rx-merge-delay-error operator
* fix of msvc2013 compilation
* fix #417 comments
Added RXCPP_NOEXCEPT macro; Added doxygen scenarios for composite_exception and merge_delay_error; Fixed composing exception in merge_delay_error operator; Modified test for merge_delay_operator
* #417 fix composite_exception example
* #417 fix merge_delay_error doxygen example
* fix: samples add among others in project doxygen CMakeLists.txt
* fix: composite_exception.cpp example
|
|
|
|
|
|
|
|
|
|
attempt to fix #393
use event_loop lifetime to unsubscribe from new_thread workers
tested with all the perf tests, but messing with thread lifetime can
break existing code.
|
|
changed "rx-naver.hpp" to "rx-never.hpp"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* filter: mutable predicate and value forwarding
* add as_const to protect predicate from stealing
|
|
|
|
This reverts commit ad430c5bae364cf267f2b4a5cab703eb5672afbe.
* Retry operator: remove old comment
* Complete the error-reporting templates rollback
* Rename retry/repeat common file
* Fix filename in doxygen comment block
|
|
* Fix retry operator's argument semantics
* Rephrase comments in tries parameter desc
|
|
|
|
#355 reported that range-v3 ranges failed due to an errant `&` in the
`iterator_type`
|
|
* Change retry description to conform with other Rx implementations
* Retry operator common state
* Repeat operator: finite case
* Retry operator: infinite case
* Fix misc dev-stage errors
* Retry: tests and fixes
|
|
When building RxCPP with the latest VS2017 RC, the compiler emits error
C2672 on compiling a method.
There was some off-line discussion (Kirk Shoop was included) about the
legitimacy of the error. In either case, I'd anticipate that the error
could hit in VS2017RTW, so I'm offering this PR.
The change is very targeted -- a natural question is if this error could
arise in the methods around retry. For that and further discussion, I
have to point you to my colleagues participating in the off-line
discussion; for this particular patch all I could do was confirm the
latest RC still needs it to build.
|
|
numbers (#356)
* Sketch interface for finite/inifinite variants
* CRTP deriving finite/infinite from base
* Fully rewrite repeat implementation
* Fix description and comments in repeat
* Test repeat(0) case
* Make 0 handling with completion when the input sequence complete
* Return immidiately empty sequence instead on first on_completed
* Return immidiately empty sequence instead on first on_completed
* Update param description for repeat 0 case
* repeat(0): never call on.next(), but call on.completed()
* Test: no subscriptions are made when repeat(0)
|
|
vector include in #line144
|
|
|
|
shift tests to include aliases
|
|
added aliases for some operators
transform (map)
merge_transform (flat_map)
concat_transform (concat_map)
switch_on_error (on_error_resume_next)
accumulate (reduce)
|
|
|
|
|
|
|
|
* decouple publish, publish_synchronized, multicast from observable
* decouple publish, publish_synchronized, multicast from observable - restore include structure
|
|
* Add callback for when a task is added to a run-loop schedule
* Provide wakeup time in 'new task' callback
Modified callback to provide new wakeup time as a callback parameter, so that it can schedule an event to wake the thread owning the run loop, rather than (as was the case) having to iterate through the dispatch loop.
|