some suggestions are below. unfortunately i'm not able to test them out
right now, but in my experience they should work. i apologize if they don't
for some reason.
> package test;
>
> use strict;
> use threads;
> use threads:shared;
>
> sub new {
> my $class = shift;
> $class = ref($class);
> my $self = {};
change to: my $self = &share({});
> # doesn't like the following in a shared scenario
> @{$self->{container}} = ();
try: $self->{container} = &share([]);
> bless $self, $class;
> return $self;
> }
>
> sub push : locked method {
> my $self = shift;
> my @stuff = ();
> @stuff = @_;
> if (scalar @stuff > 0) {
> # whines about the @{$self->{container}} and sharing here. Why?
> push(@{$self->{container}},@stuff);
try changing declaration above to: my @stuff : shared = ();
> }
> }
> 1;