The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Mojolicious::Plugin::OnFork - Do Something Whenever a Worker Starts

VERSION
    Version 0.006

SYNOPSIS
      # Mojolicious
      $self->plugin('OnFork' => sub { srand })
        if $ENV{HYPNOTOAD_APP};

      # Mojolicious::Lite
      plugin OnFork => sub { srand }
        if $ENV{HYPNOTOAD_APP};

DESCRIPTION
    Mojolicious::Plugin::OnFork is a plugin to easily define code, that is
    executed whenever a new worker process of the web server forks.

    All this plugin actually does is

      Mojo::IOLoop->timer(0 => $code)

    The motivation for this plugin was, that hypnotoad does not guarantee
    to call srand() after a fork(), so worker processes might all get the
    same sequence of "random" numbers from rand().

    Starting with Mojolicious 5.76 "srand" is actually called after a
    fork, but this fact is not officially documented and according to the
    author can be removed in the future without any previous notice.

    As a consequence depending on the Mojolicious version and for this
    use case "srand" might be called twice after a worker starts.

METHODS
    Mojolicious::Plugin::OnFork inherits all methods from
    Mojolicious::Plugin and implements the following new ones.

  "register"
    Register plugin hooks in Mojolicious application.

SEE ALSO
    Mojolicious, <https://github.com/kraih/mojo/issues/402>.

AUTHOR
    Bernhard Graf <graf(a)cpan.org>

COPYRIGHT AND LICENSE
    Copyright (C) 2012 - 2017 Bernhard Graf

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.