File tree 3 files changed +13
-15
lines changed
publish_subscribe_dynamic_data
request_response_dynamic_data
3 files changed +13
-15
lines changed Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ fn main() -> Result<(), Box<dyn core::error::Error>> {
39
39
let mut counter = 0 ;
40
40
41
41
while node. wait ( CYCLE_TIME ) . is_ok ( ) {
42
- let required_memory_size = ( counter + 1 ) * ( counter + 1 ) ;
42
+ let required_memory_size = 1_000_000 . min ( ( counter + 1 ) * ( counter + 1 ) ) ;
43
43
let sample = publisher. loan_slice_uninit ( required_memory_size) ?;
44
44
let sample = sample. write_from_fn ( |byte_idx| ( ( byte_idx + counter) % 255 ) as u8 ) ;
45
45
Original file line number Diff line number Diff line change @@ -38,32 +38,30 @@ fn main() -> Result<(), Box<dyn core::error::Error>> {
38
38
39
39
let mut counter = 0 ;
40
40
41
- let mut required_memory_size = 1 ;
42
- let request = client. loan_slice_uninit ( required_memory_size) ?;
43
- let request = request. write_from_fn ( |_| 0 ) ;
44
- let mut pending_response = request. send ( ) ?;
41
+ loop {
42
+ counter += 1 ;
43
+
44
+ let required_memory_size = 1_000_000 . min ( ( counter + 1 ) * ( counter + 1 ) ) ;
45
+ let request = client. loan_slice_uninit ( required_memory_size) ?;
46
+ let request = request. write_from_fn ( |byte_idx| ( ( byte_idx + counter) % 255 ) as u8 ) ;
47
+ let pending_response = request. send ( ) ?;
45
48
46
- while node. wait ( CYCLE_TIME ) . is_ok ( ) {
47
49
println ! (
48
50
"send request {} with {} bytes ..." ,
49
51
counter, required_memory_size
50
52
) ;
51
53
54
+ if !node. wait ( CYCLE_TIME ) . is_ok ( ) {
55
+ break ;
56
+ }
57
+
52
58
// acquire all responses to our request from our buffer that were sent by the servers
53
59
while let Some ( response) = pending_response. receive ( ) ? {
54
60
println ! (
55
61
" received response with {} bytes" ,
56
62
response. payload( ) . len( )
57
63
) ;
58
64
}
59
-
60
- counter += 1 ;
61
- // send all other requests by using zero copy API
62
- required_memory_size = ( counter + 1 ) * ( counter + 1 ) ;
63
- let request = client. loan_slice_uninit ( required_memory_size) ?;
64
- let request = request. write_from_fn ( |byte_idx| ( ( byte_idx + counter) % 255 ) as u8 ) ;
65
-
66
- pending_response = request. send ( ) ?;
67
65
}
68
66
69
67
println ! ( "exit" ) ;
Original file line number Diff line number Diff line change @@ -44,7 +44,7 @@ fn main() -> Result<(), Box<dyn core::error::Error>> {
44
44
active_request. payload( ) . len( )
45
45
) ;
46
46
47
- let required_memory_size = counter + 1 ;
47
+ let required_memory_size = 1_000_000 . min ( ( counter + 1 ) * ( counter + 1 ) ) ;
48
48
let response = active_request. loan_slice_uninit ( required_memory_size) ?;
49
49
let response = response. write_from_fn ( |byte_idx| ( ( byte_idx + counter) % 255 ) as u8 ) ;
50
50
println ! ( " send response with {} bytes" , response. payload( ) . len( ) ) ;
You can’t perform that action at this time.
0 commit comments