[1184] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[D-O-H] r1124 - trunk/owl/perl/lib/BarnOwl

daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:13:52 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@nelhage.com
To: dirty-owl-hackers@MIT.EDU
From: nelhage@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Mon, 15 Sep 2008 21:04:50 -0400 (EDT)

Author: nelhage
Date: 2008-09-15 21:04:49 -0400 (Mon, 15 Sep 2008)
New Revision: 1124

Modified:
   trunk/owl/perl/lib/BarnOwl/ModuleLoader.pm
Log:
Fix :reload-module's interactions with PAR modules.


Modified: trunk/owl/perl/lib/BarnOwl/ModuleLoader.pm
===================================================================
--- trunk/owl/perl/lib/BarnOwl/ModuleLoader.pm	2008-09-15 23:14:31 UTC (rev 1123)
+++ trunk/owl/perl/lib/BarnOwl/ModuleLoader.pm	2008-09-16 01:04:49 UTC (rev 1124)
@@ -12,6 +12,7 @@
 sub load_all {
     my $class = shift;
     $class->rescan_modules;
+    PAR::reload_libs();
 
     for my $mod (keys %modules) {
         if(!defined eval "use BarnOwl::Module::$mod") {
@@ -23,7 +24,6 @@
 }
 
 sub rescan_modules {
-    PAR::reload_libs();
     PAR->import(BarnOwl::get_data_dir() . "/modules/*.par");
     PAR->import(BarnOwl::get_config_dir() . "/modules/*.par");
     my @modules;
@@ -64,8 +64,19 @@
         delete $INC{$m} if $m =~ m{^BarnOwl/Module/$module};
     }
 
+    my $parfile;
+    for my $p (@PAR::PAR_INC) {
+        if($p =~ m/\Q$module\E[.]par$/) {
+            $parfile = $p;
+            last;
+        }
+    }
+
     local $SIG{__WARN__} = \&squelch_redefine;
-    if(!defined eval "use BarnOwl::Module::$module") {
+
+    if(defined $parfile) {
+        PAR::reload_libs($parfile);
+    } elsif(!defined eval "use BarnOwl::Module::$module") {
         BarnOwl::error("Unable to load module $module: \n$@\n") if $@;
     }
 }


home help back first fref pref prev next nref lref last post