Skip to content

tsee/extutils-xspp-plugin-cloning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME
    ExtUtils::XSpp::Plugin::Cloning - An XS++ plugin for controlling cloning
    on thread creation

SYNOPSIS
    Use it in your XS++ code as follows. No other interface required.

      %module{Your::Module}
  
      %loadplugin{Cloning}
  
      # Objects of this class will just be undef in a cloned interpreter
      class MyThreadSafeClass {
        %PreventCloning;
        ...
      };
  
      # TODO More to come

DESCRIPTION
    "ExtUtils::XSpp::Plugin::Cloning" is a plugin for "XS++" (See
    ExtUtils::XSpp) for controlling the behavior of a class's objects when
    the interpreter/thread they live in is cloned.

    Since "ExtUtils::XSpp"'s plugin interface is considered experimental, so
    is this module!

DIRECTIVES
  %PreventCloning
    Specify this directive inside your class to prevent objects of the class
    from being cloned on thread spawning. They will simply be undefined in
    the new interperter/thread.

    This defines a new "CLONE_SKIP" method in the given class that prevents
    the instances from being cloned. Note that due to this implementation
    detail, the effect of the %PreventCloning directive is inheritable.

AUTHOR
    Steffen Mueller <smueller@cpan.org>

COPYRIGHT AND LICENSE
    Copyright 2010 by Steffen Mueller

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.