… | |
… | |
97 | |
97 | |
98 | package CFPlus::DB::Server; |
98 | package CFPlus::DB::Server; |
99 | |
99 | |
100 | use strict; |
100 | use strict; |
101 | |
101 | |
|
|
102 | use EV (); |
102 | use Fcntl; |
103 | use Fcntl; |
103 | use BerkeleyDB; |
104 | use BerkeleyDB; |
104 | |
105 | |
105 | our $DB_ENV; |
106 | our $DB_ENV; |
106 | our $DB_STATE; |
107 | our $DB_STATE; |
… | |
… | |
384 | }; |
385 | }; |
385 | |
386 | |
386 | my $error = $@; |
387 | my $error = $@; |
387 | |
388 | |
388 | eval { |
389 | eval { |
|
|
390 | $DB_ENV->txn_checkpoint (0, 0, 0); |
|
|
391 | |
389 | undef %DB_TABLE; |
392 | undef %DB_TABLE; |
390 | undef $DB_ENV; |
393 | undef $DB_ENV; |
391 | |
394 | |
392 | Storable::store_fd [die => $error], $fh; |
395 | Storable::store_fd [die => $error], $fh; |
393 | }; |
396 | }; |
394 | |
397 | |
395 | $DB_ENV->txn_checkpoint (0, 0, 0); |
|
|
396 | CFPlus::_exit 0; |
398 | CFPlus::_exit 0; |
397 | } |
399 | } |
398 | |
400 | |
399 | close $fh; |
401 | close $fh; |
400 | CFPlus::fh_nonblocking $FH, 1; |
402 | CFPlus::fh_nonblocking $FH, 1; |