File tree Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ pub fn consume_timeslice(env: Env, percent: i32) -> bool {
2121/// See `schedule_nif!` for a convenience wrapper around this type.
2222pub enum NifScheduleResult < T > {
2323 Final ( T ) ,
24- Continue {
24+ Reschedule {
2525 fun_name : & ' static str ,
2626 fun : unsafe extern "C" fn ( NIF_ENV , i32 , * const NIF_TERM ) -> NIF_TERM ,
2727 args : Vec < T > ,
4848 Err ( inner) => inner. as_returned ( env) ,
4949 Ok ( inner) => match inner {
5050 NifScheduleResult :: Final ( inner) => inner. as_returned ( env) ,
51- NifScheduleResult :: Continue {
51+ NifScheduleResult :: Reschedule {
5252 fun_name,
5353 fun,
5454 flags,
@@ -92,10 +92,13 @@ macro_rules! schedule_nif {
9292 schedule_nif!( $fun_name, $args, $crate:: schedule:: SchedulerFlags :: Normal )
9393 } ;
9494 ( $fun_name: expr, $args: expr, $flags: expr) => { {
95- let func = EXTERN_NIF_MAP . get( $fun_name) . unwrap( ) ;
96- Ok ( $crate:: schedule:: NifScheduleResult :: Continue {
95+ let func = EXTERN_NIF_MAP . get( $fun_name) ;
96+ if func. is_none( ) {
97+ panic!( "NIF \" {}\" does not exist" , $fun_name) ;
98+ }
99+ Ok ( $crate:: schedule:: NifScheduleResult :: Reschedule {
97100 fun_name: $fun_name,
98- fun: * func,
101+ fun: * ( func. unwrap ( ) ) ,
99102 args: $args,
100103 flags: $flags,
101104 } )
You can’t perform that action at this time.
0 commit comments