bigloo.foreign.call_cc C# (CSharp) Method

call_cc() public static method

public static call_cc ( procedure p ) : Object
p procedure
return Object
        public static Object call_cc( procedure  p )
        {
            exit         saved= (exit)bgldynamic.abgldynamic.get().exitd_top;
            exit         me= (exit) setexit();
            Object       r;

            PUSH_EXIT( me, 1 );

            try
            {
               if (PROCEDURE_CORRECT_ARITYP( p, 1 ))
               {
              r= p.funcall1( new callcc() );
              bgldynamic.abgldynamic.get().exitd_top= saved;
               }
               else
               {
              r= null;
              fail( "call/cc", "Wrong arity", p );
               }
            }
            catch (bexception x)
            {
               r= debug_handler( x, me );
               bgldynamic.abgldynamic.get().exitd_top= saved;
            }

            return r;
        }
foreign