X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fapp_test%2Freceiver.c;h=6f739a568270acf318001056232c7e1aee69ce8b;hb=77406e61f2158f5b88b7a9f6e3e86d8f62c8f71a;hp=ed2450b422326c25fcb25a1d063344758d1b5507;hpb=a41c6f5f26b3a44009f4aff3df3f83b9a79ace01;p=ric-plt%2Flib%2Frmr.git diff --git a/test/app_test/receiver.c b/test/app_test/receiver.c index ed2450b..6f739a5 100644 --- a/test/app_test/receiver.c +++ b/test/app_test/receiver.c @@ -47,6 +47,12 @@ RMR_SEED_RT -- path to the static routing table RMR_RTG_SVC -- port to listen for RTG connections + Compile time options + if -DMTC is defined on the compile command, then RMr is initialised + with the multi-threaded receive thread rather than using the same + process receive function. All other functions in the receiver are + the same. + Date: 18 April 2019 Author: E. Scott Daniels */ @@ -125,7 +131,13 @@ int main( int argc, char** argv ) { fprintf( stderr, " listening on port: %s for a max of %d messages\n", listen_port, nmsgs ); +#ifdef MTC + fprintf( stderr, " starting in multi-threaded mode\n" ); + mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_MTCALL ); // start RMr in mt-receive mode +#else + fprintf( stderr, " starting in direct receive mode\n" ); mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines! +#endif if( mrc == NULL ) { fprintf( stderr, " ABORT: unable to initialise RMr\n" ); exit( 1 ); @@ -186,6 +198,9 @@ int main( int argc, char** argv ) { while( rt_count > 0 && msg != NULL && msg->state == RMR_ERR_RETRY ) { // to work right in nano we need this :( if( ack_count < 1 ) { // 1st ack, so we need to connect, and we'll wait for that sleep( 1 ); + if( rt_count > 5 ) { + rt_count = 5; // but only for 5sec; not 1000sec! + } } rt_count--; msg = rmr_rts_msg( mrc, msg ); // we don't try to resend if this returns retry @@ -194,6 +209,8 @@ int main( int argc, char** argv ) { ack_count++; } } + + timeout = time( NULL ) + 10; // extend timeout to 10s past last received message } }