Skip to content

Fix incorrect usage of subject_state#509

Merged
victimsnino merged 1 commit into
v2from
fix_incorrect_subjects_state
Jan 20, 2024
Merged

Fix incorrect usage of subject_state#509
victimsnino merged 1 commit into
v2from
fix_incorrect_subjects_state

Conversation

@victimsnino
Copy link
Copy Markdown
Owner

@victimsnino victimsnino commented Jan 20, 2024

subject_state is std::enable_shared_from_this<subject_state> and it expects to call weak_from this, so it have to be shared_ptr itself for proper initialization of it

@victimsnino victimsnino marked this pull request as ready for review January 20, 2024 16:59
@victimsnino victimsnino mentioned this pull request Jan 20, 2024
@github-actions
Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 329.16 ns 1.54 ns 1.24 ns 1.25
Subscribe empty callbacks to empty observable via pipe operator 335.90 ns 1.54 ns 1.23 ns 1.25

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 725.67 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1060.11 ns 4.63 ns 5.25 ns 0.88
concat_as_source of just(1 immediate) create + subscribe 2276.20 ns 101.74 ns 79.95 ns 1.27
defer from array of 1 - defer + create + subscribe + immediate 762.24 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2197.11 ns 60.29 ns 58.01 ns 1.04
interval - interval + take(3) + subscribe + current_thread 3041.78 ns 32.87 ns 32.10 ns 1.02

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1103.69 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 863.72 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1036.33 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 955.11 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1339.10 ns 0.31 ns 0.62 ns 0.50
immediate_just(1,2)+last()+subscribe 986.60 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1123.26 ns 17.29 ns 17.91 ns 0.97

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 312.13 ns 1.54 ns 1.23 ns 1.25
current_thread scheduler create worker + schedule 442.33 ns 5.55 ns 6.48 ns 0.86
current_thread scheduler create worker + schedule + recursive schedule 899.37 ns 69.62 ns 64.61 ns 1.08

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 877.80 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 913.51 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2398.04 ns 119.10 ns 96.79 ns 1.23
immediate_just+buffer(2)+subscribe 1512.85 ns 13.58 ns 13.58 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2407.64 ns 705.24 ns 698.16 ns 1.01

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 850.17 ns - - 0.00
immediate_just+take_while(true)+subscribe 852.78 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2041.03 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3476.35 ns 127.37 ns 112.67 ns 1.13
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3716.28 ns 236.77 ns 105.68 ns 2.24
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 106.96 ns 84.86 ns 1.26
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3587.29 ns 576.23 ns 452.39 ns 1.27

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.50 ns 49.48 ns 23.24 ns 2.13

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1459.01 ns 15.75 ns 14.20 ns 1.11
basic sample with immediate scheduler 1433.47 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 925.20 ns 0.31 ns 0.31 ns 1.00

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1082.38 ns 3.59 ns 3.71 ns 0.97
Subscribe empty callbacks to empty observable via pipe operator 1076.14 ns 3.41 ns 3.87 ns 0.88

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2376.45 ns 0.45 ns 0.35 ns 1.26
from array of 1 - create + subscribe + current_thread 2874.68 ns 8.67 ns 32.19 ns 0.27
concat_as_source of just(1 immediate) create + subscribe 6939.61 ns 288.91 ns 323.24 ns 0.89
defer from array of 1 - defer + create + subscribe + immediate 2557.83 ns 0.28 ns 0.29 ns 0.96
interval - interval + take(3) + subscribe + immediate 6432.54 ns 93.59 ns 178.24 ns 0.53
interval - interval + take(3) + subscribe + current_thread 7604.52 ns 59.45 ns 168.30 ns 0.35

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 4136.59 ns 0.31 ns 0.64 ns 0.49
immediate_just+filter(true)+subscribe 2972.48 ns 0.32 ns 0.66 ns 0.48
immediate_just(1,2)+skip(1)+subscribe 4023.94 ns 0.30 ns 0.32 ns 0.94
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2548.99 ns 0.62 ns 1.07 ns 0.59
immediate_just(1,2)+first()+subscribe 4775.16 ns 0.31 ns 0.32 ns 0.96
immediate_just(1,2)+last()+subscribe 3083.80 ns 0.29 ns 0.57 ns 0.51
immediate_just+take_last(1)+subscribe 4198.39 ns 78.51 ns 91.21 ns 0.86

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 985.63 ns 4.17 ns 6.27 ns 0.67
current_thread scheduler create worker + schedule 1307.44 ns 13.90 ns 44.66 ns 0.31
current_thread scheduler create worker + schedule + recursive schedule 2274.79 ns 161.29 ns 383.77 ns 0.42

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2675.37 ns 0.28 ns 0.31 ns 0.89
immediate_just+scan(10, std::plus)+subscribe 3037.68 ns 0.56 ns 0.59 ns 0.94
immediate_just+flat_map(immediate_just(v*2))+subscribe 6672.01 ns 370.72 ns 609.39 ns 0.61
immediate_just+buffer(2)+subscribe 3024.35 ns 75.58 ns 139.25 ns 0.54
immediate_just+window(2)+subscribe + subscsribe inner 6692.37 ns 2156.76 ns 3633.06 ns 0.59

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2620.77 ns - - 0.00
immediate_just+take_while(true)+subscribe 2636.87 ns 0.28 ns 0.55 ns 0.51

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 6252.14 ns 0.28 ns 0.60 ns 0.47

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 9641.77 ns 376.76 ns 450.88 ns 0.84
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 10892.38 ns 389.73 ns 726.23 ns 0.54
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 394.97 ns 653.77 ns 0.60
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 10351.88 ns 1678.27 ns 1741.08 ns 0.96

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 101.86 ns 90.56 ns 88.73 ns 1.02

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3701.25 ns 60.11 ns 172.64 ns 0.35
basic sample with immediate scheduler 3552.93 ns 6.49 ns 24.89 ns 0.26

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2932.26 ns 0.28 ns 0.30 ns 0.93

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 272.02 ns 0.88 ns 0.88 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 264.64 ns 0.88 ns 0.88 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 562.49 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 792.29 ns 5.56 ns 5.56 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1913.75 ns 74.84 ns 71.87 ns 1.04
defer from array of 1 - defer + create + subscribe + immediate 592.29 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1571.50 ns 57.08 ns 57.07 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2083.26 ns 30.90 ns 30.88 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 947.22 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 676.38 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 850.96 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 691.18 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1152.29 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 775.59 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1023.13 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 196.14 ns 0.88 ns 0.88 ns 1.00
current_thread scheduler create worker + schedule 305.35 ns 5.57 ns 5.57 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 626.34 ns 58.51 ns 57.70 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 671.46 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 738.94 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1812.72 ns 79.46 ns 75.40 ns 1.05
immediate_just+buffer(2)+subscribe 1407.22 ns 13.91 ns 13.28 ns 1.05
immediate_just+window(2)+subscribe + subscsribe inner 2165.80 ns 615.40 ns 607.38 ns 1.01

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 650.17 ns - - 0.00
immediate_just+take_while(true)+subscribe 670.39 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1669.50 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2553.10 ns 85.65 ns 85.04 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3111.42 ns 98.06 ns 95.03 ns 1.03
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 83.70 ns 79.79 ns 1.05
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2698.87 ns 550.15 ns 547.30 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 26.27 ns 24.28 ns 24.38 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1022.07 ns 14.50 ns 14.51 ns 1.00
basic sample with immediate scheduler 1020.12 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 749.49 ns 0.31 ns 0.31 ns 1.00

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 578.31 ns 3.09 ns 2.47 ns 1.25
Subscribe empty callbacks to empty observable via pipe operator 590.43 ns 3.09 ns 2.47 ns 1.25

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1184.27 ns 5.24 ns 4.93 ns 1.06
from array of 1 - create + subscribe + current_thread 1438.63 ns 19.74 ns 19.74 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 4637.61 ns 157.48 ns 153.03 ns 1.03
defer from array of 1 - defer + create + subscribe + immediate 1232.43 ns 5.55 ns 5.24 ns 1.06
interval - interval + take(3) + subscribe + immediate 3125.33 ns 131.12 ns 129.70 ns 1.01
interval - interval + take(3) + subscribe + current_thread 3465.52 ns 60.49 ns 59.86 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1870.27 ns 12.88 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1352.84 ns 12.31 ns 12.33 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1759.86 ns 12.96 ns 13.67 ns 0.95
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1668.57 ns 15.96 ns 15.81 ns 1.01
immediate_just(1,2)+first()+subscribe 2420.93 ns 12.96 ns 12.64 ns 1.03
immediate_just(1,2)+last()+subscribe 1506.76 ns 14.12 ns 14.11 ns 1.00
immediate_just+take_last(1)+subscribe 2083.36 ns 59.31 ns 60.18 ns 0.99

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 489.38 ns 4.63 ns 4.63 ns 1.00
current_thread scheduler create worker + schedule 671.45 ns 16.98 ns 16.05 ns 1.06
current_thread scheduler create worker + schedule + recursive schedule 1116.74 ns 106.16 ns 104.58 ns 1.02

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1350.58 ns 12.25 ns 12.26 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1457.14 ns 21.29 ns 21.58 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 3560.00 ns 200.19 ns 211.41 ns 0.95
immediate_just+buffer(2)+subscribe 2666.58 ns 57.94 ns 59.82 ns 0.97
immediate_just+window(2)+subscribe + subscsribe inner 4106.45 ns 1119.69 ns 1115.54 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1605.62 ns 11.46 ns 11.41 ns 1.00
immediate_just+take_while(true)+subscribe 1344.86 ns 12.33 ns 12.32 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3148.70 ns 7.71 ns 7.40 ns 1.04

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5261.27 ns 228.09 ns 226.38 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5919.23 ns 211.68 ns 222.78 ns 0.95
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 224.72 ns 220.81 ns 1.02
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6219.43 ns 765.81 ns 754.81 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.73 ns 37.21 ns 37.32 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1902.24 ns 60.46 ns 59.92 ns 1.01
basic sample with immediate scheduler 1923.41 ns 37.66 ns 39.80 ns 0.95

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1786.05 ns 19.99 ns 19.98 ns 1.00

@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 20, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (5457df3) 95.80% compared to head (9be4007) 95.80%.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #509   +/-   ##
=======================================
  Coverage   95.80%   95.80%           
=======================================
  Files          78       78           
  Lines        1977     1979    +2     
=======================================
+ Hits         1894     1896    +2     
  Misses         83       83           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

1 New issue
0 Security Hotspots
100.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

@victimsnino victimsnino merged commit a9de26e into v2 Jan 20, 2024
@victimsnino victimsnino deleted the fix_incorrect_subjects_state branch January 20, 2024 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant