Data-STUID

 view release on metacpan or  search on metacpan

lib/Data/STUID/Generator.pm  view on Meta::CPAN

use constant EPOCH_OFFSET  => 946684800;
use constant HOST_ID_BITS  => 16;
use constant TIME_BITS     => 36;
use constant SERIAL_BITS   => (TOTAL_BITS - HOST_ID_BITS - TIME_BITS);
use constant TIME_SHIFT    => HOST_ID_BITS + SERIAL_BITS;
use constant SERIAL_SHIFT  => HOST_ID_BITS;

# XXX WHAT ON EARTH ARE YOU DOING HERE?
#
# We normally protect ourselves from leaking resources in DESTROY, but...
# when we are enveloped in a PSGI app, a reference to us stays alive until
# global destruction.
#
# At global destruction time, the order in which objects get cleaned
# up is undefined, so it often happens that the mutex/shared memory gets
# freed before the dispatcher object -- so when DESTROY gets called,
# $self->{mutex} and $self->{shared_mem} are gone already, and we can't
# call remove().
#
# To avoid this, we keep a guard object that makes sure that the resources
# are cleaned up at END {} time



( run in 2.540 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )