Checking in changes prior to tagging of version 0.65.
[gitmo/Mouse.git] / lib / Mouse / Meta / Module.pm
index 08c21e3..16ca119 100755 (executable)
@@ -283,6 +283,13 @@ sub DESTROY{
     return if !$serial_id;
     # mortal anonymous class
 
+    # XXX: cleaning stash with threads causes panic/SEGV.
+    if(exists $INC{'threads.pm'}) {
+        # (caller)[2] indicates the caller's line number,
+        # which is zero when the current thread is joining.
+        return if( (caller)[2] == 0);
+    }
+
     # @ISA is a magical variable, so we clear it manually.
     @{$self->{superclasses}} = () if exists $self->{superclasses};
 
@@ -293,7 +300,6 @@ sub DESTROY{
     delete $METAS{$name};
 
     $name =~ s/ $serial_id \z//xms;
-
     no strict 'refs';
     delete ${$name}{ $serial_id . '::' };
 
@@ -323,7 +329,7 @@ Mouse::Meta::Module - The base class for Mouse::Meta::Class and Mouse::Meta::Rol
 
 =head1 VERSION
 
-This document describes Mouse version 0.53
+This document describes Mouse version 0.65
 
 =head1 SEE ALSO