Changeset 2491 in ProjectBuilder for devel/pb-modules


Ignore:
Timestamp:
Mar 31, 2020, 11:26:06 AM (4 years ago)
Author:
Bruno Cornec
Message:

Various perf improvements

  • Avoid managing full changelog files when in testver
  • Avoid loading a conf file in cache already handled
  • set_waitpid_blocking_sleep(0)
  • Use YAML::XS if available
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb-modules/lib/ProjectBuilder/Conf.pm

    r2488 r2491  
    210210} else {
    211211    eval {
    212         require YAML;
    213         YAML->import();
     212        require YAML::XS;
     213        YAML::XS->import();
    214214    };
    215215    if ($@) {
    216216        eval {
    217             # No YAML found using a more std but less complete one. Old perl only
    218             require Module::Build::YAML;
    219             Module::Build::YAML->import();
     217            require YAML;
     218            YAML->import();
    220219        };
    221220        if ($@) {
    222221            eval {
    223222                # No YAML found using a more std but less complete one. Old perl only
    224                 require YAML::Tiny;
    225                 YAML::Tiny->import();
     223                require Module::Build::YAML;
     224                Module::Build::YAML->import();
    226225            };
    227226            if ($@) {
    228227                eval {
    229                     # No YAML found using an embedded pne
    230                     require ProjectBuilder::YAML;
    231                     ProjectBuilder::YAML->import();
     228                    # No YAML found using a more std but less complete one. Old perl only
     229                    require YAML::Tiny;
     230                    YAML::Tiny->import();
    232231                };
    233232                if ($@) {
    234                     # Here we should be in the setup phase, with an embedded YAML code
    235                     $ldfunc = \&LoadFile;
    236                     #die "Unable to handle YAML configuration files without a YAML.pm module\n";
     233                    eval {
     234                        # No YAML found using an embedded pne
     235                        require ProjectBuilder::YAML;
     236                        ProjectBuilder::YAML->import();
     237                    };
     238                    if ($@) {
     239                        # Here we should be in the setup phase, with an embedded YAML code
     240                        $ldfunc = \&LoadFile;
     241                        #die "Unable to handle YAML configuration files without a YAML.pm module\n";
     242                    } else {
     243                        $ldfunc = \&ProjectBuilder::YAML::LoadFile;
     244                    }
    237245                } else {
    238                     $ldfunc = \&ProjectBuilder::YAML::LoadFile;
     246                    $ldfunc = \&YAML::Tiny::LoadFile;
    239247                }
    240248            } else {
    241                 $ldfunc = \&YAML::Tiny::LoadFile;
     249                $ldfunc = \&Module::Build::YAML::LoadFile;
    242250            }
    243251        } else {
    244             $ldfunc = \&Module::Build::YAML::LoadFile;
    245         }
     252            $ldfunc = \&YAML::LoadFile;
    246253    } else {
    247         $ldfunc = \&YAML::LoadFile;
    248     }
     254        $ldfunc = \&YAML::XS::LoadFile;
     255    }
     256
     257    # Have we already handled that conf file ?
     258    next if ($lh->{'__cf'}->{$cf} eq 1);
    249259
    250260    pb_log(1,"Loading YAML conf file $cf\n");
     
    265275        }
    266276    }
     277    # Remember we've seen that conf file
     278    $lh->{'__cf'}->{$cf} = 1;
    267279}
    268280return($lh);
     
    277289sub pb_conf_add {
    278290
    279 pb_log(2,"DEBUG: pb_conf_add with ".Dumper(@_)."\n");
    280291my $lh;
    281292
     
    288299    return($lh) if (defined $pbconffiles{$cf});
    289300   
     301    pb_log(2,"DEBUG: pb_conf_add with $cf\n");
    290302    # The new conf file overload values already managed
    291303    my $num = keys %pbconffiles;
Note: See TracChangeset for help on using the changeset viewer.