Show
Ignore:
Timestamp:
04/04/08 06:08:04 (19 months ago)
Author:
fumiakiy
Message:

Stopped saving something in the database while database driver is being initialized. Let us see if this fixes the occasional "Time to Upgrade!" bug. BugId:58199

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-33/lib/MT/ConfigMgr.pm

    r1174 r1769  
    1717 
    1818sub new { 
    19     my $mgr = bless { __var => { }, __dbvar => { }, __paths => [] }, $_[0]; 
     19    my $mgr = bless { __var => { }, __dbvar => { }, __paths => [], __dirty => 0 }, $_[0]; 
    2020    $mgr->init; 
    2121    $mgr; 
     
    162162        $mgr->{$set}{$var} = $val; 
    163163    } 
     164    $mgr->set_dirty() if defined($_[2]) && $_[2]; 
    164165} 
    165166 
     
    186187} 
    187188 
     189sub set_dirty { 
     190    my $mgr = shift; 
     191    $mgr = $mgr->instance unless ref($mgr); 
     192    $mgr->{__dirty} = 1; 
     193} 
     194 
     195sub clear_dirty { 
     196    my $mgr = shift; 
     197    $mgr = $mgr->instance unless ref($mgr); 
     198    $mgr->{__dirty} = 0; 
     199} 
     200 
     201sub is_dirty { 
     202    my $mgr = shift; 
     203    $mgr = $mgr->instance unless ref($mgr); 
     204    $mgr->{__dirty}; 
     205} 
     206 
    188207sub save_config { 
    189208    my $class = shift; 
    190209    my $mgr = $class->instance; 
     210    return 0 unless $mgr->is_dirty(); 
    191211    my $data = ''; 
    192212    my $settings = $mgr->{__dbvar}; 
     
    220240    $config->data($data); 
    221241    $config->save or die $config->errstr; 
     242    $mgr->clear_dirty; 
     243    1; 
    222244} 
    223245