Commit | Line | Data |
11736b4c |
1 | package DBIx::Class::StartupCheck; |
2 | |
3 | BEGIN { |
4 | |
5 | { package TestRHBug; use overload bool => sub { 0 } } |
6 | |
7 | sub _has_bug_34925 { |
8 | my %thing; |
9 | my $r1 = \%thing; |
10 | my $r2 = \%thing; |
11 | bless $r1 => 'TestRHBug'; |
12 | return !!$r2; |
13 | } |
14 | |
15 | sub _possibly_has_bad_overload_performance { |
16 | return $] < 5.008009 && ! _has_bug_34925(); |
17 | } |
18 | |
19 | unless ($ENV{DBIC_NO_WARN_BAD_PERL}) { |
20 | if (_possibly_has_bad_overload_performance()) { |
21 | print STDERR "\n\nWARNING: " . __PACKAGE__ . ": This version of Perl is likely to exhibit\n" . |
22 | "extremely slow performance for certain critical operations.\n" . |
23 | "Please consider recompiling Perl. For more information, see\n" . |
24 | "https://bugzilla.redhat.com/show_bug.cgi?id=196836 and/or\n" . |
25 | "http://lists.scsys.co.uk/pipermail/dbix-class/2007-October/005119.html.\n" . |
26 | "You can suppress this message by setting DBIC_NO_WARN_BAD_PERL=1 in your\n" . |
27 | "environment.\n\n"; |
28 | } |
29 | } |
30 | } |
31 | |
32 | =head1 NAME |
33 | |
34 | DBIx::Class::StartupCheck - Run environment checks on startup |
35 | |
36 | =head1 SYNOPSIS |
37 | |
38 | use DBIx::Class::StartupCheck; |
39 | |
40 | =head1 DESCRIPTION |
41 | |
42 | Currently this module checks for, and if necessary issues a warning for, a |
43 | particular bug found on RedHat systems from perl-5.8.8-10 and up. Other checks |
44 | may be added from time to time. |
45 | |
46 | Any checks herein can be disabled by setting an appropriate environment |
47 | variable. If your system suffers from a particular bug, you will get a warning |
48 | message on startup sent to STDERR, explaining what to do about it and how to |
49 | suppress the message. If you don't see any messages, you have nothing to worry |
50 | about. |
51 | |
52 | =head1 CONTRIBUTORS |
53 | |
54 | Nigel Metheringham |
55 | |
56 | Brandon Black |
57 | |
58 | Matt S. Trout |
59 | |
60 | =head1 AUTHOR |
61 | |
62 | Jon Schutz |
63 | |
64 | =head1 LICENSE |
65 | |
66 | You may distribute this code under the same terms as Perl itself. |
67 | |
68 | =cut |
69 | |
70 | 1; |