Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use Test::More tests => 10;
- use Data::ObjectDriver::Driver::DBI;
- use Parallel::ForkManager;
- sub main {
- # Init dbh and make sure it was connected in parent process
- my $driver = Data::ObjectDriver::Driver::DBI->new(
- dsn => 'dbi:mysql:database=test',
- username => 'root'
- );
- my $dbh = $driver->rw_handle;
- $dbh->do('SELECT 1');
- # Prepare fork manager
- my $pm = Parallel::ForkManager->new( 10 );
- $pm->run_on_finish( sub {
- my ($pid, $exit_code, $ident, $exit_signal, $core_dump, $data) = @_;
- if (defined $data) {
- my ($ret,$i) = @$data;
- is( $ret, $i, "Can get client unique value from ${i}th child" );
- }
- });
- for my $i (1..10) {
- $pm->start and next;
- my $dbh = $driver->rw_handle;
- $dbh->do('SELECT LAST_INSERT_ID(' . $i . ');');
- sleep 1;
- my ($ret) = $dbh->selectrow_array('SELECT LAST_INSERT_ID();');
- $pm->finish(0, [$ret,$i]);
- }
- $pm->wait_all_children;
- }
- main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement