Skip to content
  • Koichi Sasada's avatar
    aa63699d
    support `require` in non-main Ractors · aa63699d
    Koichi Sasada authored
    Many libraries should be loaded on the main ractor because of
    setting constants with unshareable objects and so on.
    
    This patch allows to call `requore` on non-main Ractors by
    asking the main ractor to call `require` on it. The calling ractor
    waits for the result of `require` from the main ractor.
    
    If the `require` call failed with some reasons, an exception
    objects will be deliverred from the main ractor to the calling ractor
    if it is copy-able.
    
    Same on `require_relative` and `require` by `autoload`.
    
    Now `Ractor.new{pp obj}` works well (the first call of `pp` requires
    `pp` library implicitly).
    
    [Feature #20627]
    aa63699d
    support `require` in non-main Ractors
    Koichi Sasada authored
    Many libraries should be loaded on the main ractor because of
    setting constants with unshareable objects and so on.
    
    This patch allows to call `requore` on non-main Ractors by
    asking the main ractor to call `require` on it. The calling ractor
    waits for the result of `require` from the main ractor.
    
    If the `require` call failed with some reasons, an exception
    objects will be deliverred from the main ractor to the calling ractor
    if it is copy-able.
    
    Same on `require_relative` and `require` by `autoload`.
    
    Now `Ractor.new{pp obj}` works well (the first call of `pp` requires
    `pp` library implicitly).
    
    [Feature #20627]
Loading