>>>>> "T" == Tobias Peters <tpeters / invalid.uni-oldenburg.de> writes:

T> The reader may now:
T> - implement Module#after
T> - do something intelligent to preserve method arity
T> - investigate if all of this is not already implemented in AspectR

 Well, it's not as simple as you think. To give you an example, when
 plruby run with a timeout, it don't give the possibility to the user code
 to create threads. It's really easy to do it in C (it just need to undef
 Thread.new, ...), try to write it in ruby but don't forget :
   * you must be able to create Thread when $SAFE <= 3
   * it must not exist a possibility to do the same when $SAFE >= 4

 With hook, you just need to write

   class Thread
      class << self
         def new:before(*args)
            raise if $SAFE >= 4
         end
         # etc, for start ...
      end
   end


Guy Decoux