@@ -1485,9 +1485,9 @@ fn get_hostfunc(
14851485 let mem = match caller. get_export ( "memory" ) {
14861486 Some ( Extern :: Memory ( mem) ) => mem,
14871487 _ => {
1488- println ! ( "Error: proxy_http_call cannot get export \" memory\" " ) ;
1488+ println ! ( "Error: proxy_grpc_call cannot get export \" memory\" " ) ;
14891489 println ! (
1490- "[vm<-host] proxy_http_call (...) -> (return_token) return: {:?}" ,
1490+ "[vm<-host] proxy_grpc_call (...) -> (return_token) return: {:?}" ,
14911491 Status :: InternalFailure
14921492 ) ;
14931493 return Status :: InternalFailure as i32 ;
@@ -1506,25 +1506,34 @@ fn get_hostfunc(
15061506 println ! (
15071507 "[vm->host] proxy_grpc_call(service={service}, service_name={service_name}, method_name={method_name}, initial_metadata={initial_metadata:?}, request={request:?}, timeout={timeout_milliseconds}" ) ;
15081508
1509- let token_id = match EXPECT . lock ( ) . unwrap ( ) . staged . get_expect_grpc_call (
1510- service,
1511- service_name,
1512- method_name,
1513- initial_metadata,
1514- request,
1515- timeout_milliseconds,
1516- ) {
1517- Some ( expect_token) => expect_token,
1518- None => 0 ,
1519- } ;
1520-
1521- unsafe {
1522- let return_token_add = mem. data_mut ( & mut caller) . get_unchecked_mut (
1523- token_ptr as u32 as usize ..token_ptr as u32 as usize + 4 ,
1524- ) ;
1525- return_token_add. copy_from_slice ( & token_id. to_le_bytes ( ) ) ;
1509+ let call_result = EXPECT
1510+ . lock ( )
1511+ . unwrap ( )
1512+ . staged
1513+ . get_expect_grpc_call (
1514+ service,
1515+ service_name,
1516+ method_name,
1517+ initial_metadata,
1518+ request,
1519+ timeout_milliseconds,
1520+ )
1521+ . unwrap_or ( Ok ( 0 ) ) ;
1522+
1523+ if let Ok ( token_id) = call_result {
1524+ unsafe {
1525+ let return_token_add = mem. data_mut ( & mut caller) . get_unchecked_mut (
1526+ token_ptr as u32 as usize ..token_ptr as u32 as usize + 4 ,
1527+ ) ;
1528+ return_token_add. copy_from_slice ( & token_id. to_le_bytes ( ) ) ;
1529+ }
15261530 }
15271531
1532+ let call_status = match call_result {
1533+ Ok ( _) => Status :: Ok ,
1534+ Err ( s) => s,
1535+ } ;
1536+
15281537 // Default Function:
15291538 // Expectation:
15301539 println ! (
@@ -1536,7 +1545,7 @@ fn get_hostfunc(
15361545 Status :: Ok
15371546 ) ;
15381547 assert_ne ! ( get_status( ) , ExpectStatus :: Failed ) ;
1539- return Status :: Ok as i32 ;
1548+ return call_status as i32 ;
15401549 } ,
15411550 ) )
15421551 }
0 commit comments