More variants…

It could be like synchronous signal handling with "raise" and "trap" keywords.

   trap trigger(n: Notice::Info) &priority=5
   {
   if ( xxx )
      break; # short circuit
   }

   trap trigger(n: Notice::Info) &priority=-5
   {
   if ( yyy )
      do_someting();
   }

   [...]
   local n: Notice::Info;
   raise trigger(n);
   […]

It could be like exception handling with "throw", and "catch" keywords.

   catch trigger(n: Notice::Info) &priority=5
   {
   if ( xxx )
      throw; # rethrow to continue handling
   }

   catch trigger(n: Notice::Info) &priority=-5
   {
   if ( yyy )
      do_someting();
   # handling stops here because it's not rethrown
   }

   [...]
   local n: Notice::Info;
   throw trigger(n);
   […]

    Jon
_______________________________________________
bro-dev mailing list
[email protected]
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev

Reply via email to