## anything we have seen so far is cool
#delete @{$interim_wr}{keys %$weak_registry};
#
- ## I still don't get any of this...
- #delete $interim_wr->{$_} for grep {
- # ref ($interim_wr->{$_}{weakref}) eq 'SCALAR'
- # and
- # ${$interim_wr->{$_}{weakref}} eq 'very closure... much wtf... wow!!!'
- #} keys %$interim_wr;
- #
## moment of truth - the rest ought to be gone
#assert_empty_weakregistry($interim_wr);
}
);
}
- # MASSIVE FIXME - this seems necessary, but I do not yet know why
- # without an external variable on the pad the on_connect_do cref
- # (starting just below) is being considered a const of some sorts
- # and persists indefinitely... wtf --ribasushi
- my $such_var = 'very closure... much wtf... wow!!!';
-
return ("dbi:SQLite:${db_file}", '', '', {
AutoCommit => 1,
# this is executed on every connect, and thus installs a disconnect/DESTROY
# guard for every new $dbh
on_connect_do => sub {
- # MASSIVE FIXME - this seems necessary, but I do not yet know why
- # without an external variable on the pad the on_connect_do cref
- # (starting just above) is being considered a const of some sorts
- # and persists indefinitely... wtf --ribasushi
- $such_var if 0;
my $storage = shift;
my $dbh = $storage->_get_dbh;
# set a *DBI* disconnect callback, to make sure the physical SQLite
# file is still there (i.e. the test does not attempt to delete
# an open database, which fails on Win32)
- if (my $guard_cb = __mk_disconnect_guard($dbh->sqlite_db_filename)) {
+ if (my $guard_cb = __mk_disconnect_guard($db_file)) {
$dbh->{Callbacks} = {
connect => sub { $guard_cb->('connect') },
disconnect => sub { $guard_cb->('disconnect') },
sub cleanup {
my $self = shift @_;
+ $_->disconnect for values %{ $self->schema->storage->replicants };
foreach my $slave (@{$self->slave_paths}) {
if(-e $slave) {
unlink $slave;
}
## Delete the old database files
-$_->disconnect for values %{ $replicated->schema->storage->replicants };
$replicated->cleanup;
done_testing;