… | |
… | |
509 | } |
509 | } |
510 | |
510 | |
511 | sub object_thawer_load { |
511 | sub object_thawer_load { |
512 | my ($filename) = @_; |
512 | my ($filename) = @_; |
513 | |
513 | |
|
|
514 | local $/; |
|
|
515 | |
|
|
516 | my $av; |
|
|
517 | |
|
|
518 | #TODO: use sysread etc. |
|
|
519 | if (open my $data, "<:raw:perlio", $filename) { |
|
|
520 | $data = <$data>; |
514 | open my $fh, "<:raw:perlio", "$filename.pst" |
521 | if (open my $pst, "<:raw:perlio", "$filename.pst") { |
515 | or return; |
522 | $av = eval { (Storable::thaw <$pst>)->{objs} }; |
|
|
523 | } |
|
|
524 | return ($data, $av); |
|
|
525 | } |
516 | |
526 | |
517 | eval { local $/; (Storable::thaw <$fh>)->{objs} } |
527 | () |
518 | } |
528 | } |
519 | |
529 | |
520 | attach_to_objects |
530 | attach_to_objects |
521 | prio => -1000000, |
531 | prio => -1000000, |
522 | on_clone => sub { |
532 | on_clone => sub { |
… | |
… | |
718 | #Symbol::delete_package __PACKAGE__; |
728 | #Symbol::delete_package __PACKAGE__; |
719 | |
729 | |
720 | # 7. reload cf.pm |
730 | # 7. reload cf.pm |
721 | $msg->("reloading cf.pm"); |
731 | $msg->("reloading cf.pm"); |
722 | require cf; |
732 | require cf; |
|
|
733 | |
|
|
734 | $msg->("load extensions"); |
|
|
735 | cf::load_extensions; |
723 | }; |
736 | }; |
724 | $msg->($@) if $@; |
737 | $msg->($@) if $@; |
725 | |
738 | |
726 | $msg->("reloaded"); |
739 | $msg->("reloaded"); |
727 | }; |
740 | }; |
… | |
… | |
918 | |
931 | |
919 | ############################################################################# |
932 | ############################################################################# |
920 | # the server's main() |
933 | # the server's main() |
921 | |
934 | |
922 | sub main { |
935 | sub main { |
|
|
936 | load_extensions; |
923 | Event::loop; |
937 | Event::loop; |
924 | } |
938 | } |
925 | |
939 | |
926 | ############################################################################# |
940 | ############################################################################# |
927 | # initialisation |
941 | # initialisation |
928 | |
942 | |
929 | register "<global>", __PACKAGE__; |
943 | register "<global>", __PACKAGE__; |
930 | |
944 | |
931 | unshift @INC, $LIBDIR; |
945 | unshift @INC, $LIBDIR; |
932 | |
|
|
933 | load_extensions; |
|
|
934 | |
946 | |
935 | $TICK_WATCHER = Event->timer ( |
947 | $TICK_WATCHER = Event->timer ( |
936 | prio => 1, |
948 | prio => 1, |
937 | at => $NEXT_TICK || 1, |
949 | at => $NEXT_TICK || 1, |
938 | cb => sub { |
950 | cb => sub { |