Commit 310833ff authored by Alexander Nozdrin's avatar Alexander Nozdrin

Merge from mysql-5.1.

parents 0864accb 1cef459c
...@@ -69,6 +69,10 @@ require "mtr_misc.pl"; ...@@ -69,6 +69,10 @@ require "mtr_misc.pl";
my $do_test_reg; my $do_test_reg;
my $skip_test_reg; my $skip_test_reg;
# Related to adding InnoDB plugin combinations
my $lib_innodb_plugin;
my $do_innodb_plugin;
# If "Quick collect", set to 1 once a test to run has been found. # If "Quick collect", set to 1 once a test to run has been found.
my $some_test_found; my $some_test_found;
...@@ -103,6 +107,17 @@ sub collect_test_cases ($$) { ...@@ -103,6 +107,17 @@ sub collect_test_cases ($$) {
$do_test_reg= init_pattern($do_test, "--do-test"); $do_test_reg= init_pattern($do_test, "--do-test");
$skip_test_reg= init_pattern($skip_test, "--skip-test"); $skip_test_reg= init_pattern($skip_test, "--skip-test");
$lib_innodb_plugin=
my_find_file($::basedir,
["storage/innodb_plugin", "storage/innodb_plugin/.libs",
"lib/mysql/plugin", "lib/plugin"],
["ha_innodb_plugin.dll", "ha_innodb_plugin.so",
"ha_innodb_plugin.sl"],
NOT_REQUIRED);
$do_innodb_plugin= ($::mysql_version_id >= 50100 &&
!(IS_WINDOWS && $::opt_embedded_server) &&
$lib_innodb_plugin);
foreach my $suite (split(",", $suites)) foreach my $suite (split(",", $suites))
{ {
push(@$cases, collect_one_suite($suite, $opt_cases)); push(@$cases, collect_one_suite($suite, $opt_cases));
...@@ -915,8 +930,11 @@ sub collect_one_test_case { ...@@ -915,8 +930,11 @@ sub collect_one_test_case {
{ {
# innodb is not supported, skip it # innodb is not supported, skip it
$tinfo->{'skip'}= 1; $tinfo->{'skip'}= 1;
# This comment is checked for running with innodb plugin (see above),
# please keep that in mind if changing the text.
$tinfo->{'comment'}= "No innodb support"; $tinfo->{'comment'}= "No innodb support";
return $tinfo; # But continue processing if we may run it with innodb plugin
return $tinfo unless $do_innodb_plugin;
} }
} }
else else
......
...@@ -120,13 +120,12 @@ int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, ...@@ -120,13 +120,12 @@ int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
LeaveCriticalSection(&cond->lock_waiting); LeaveCriticalSection(&cond->lock_waiting);
LeaveCriticalSection(mutex); LeaveCriticalSection(mutex);
result= WaitForMultipleObjects(2, cond->events, FALSE, timeout); result= WaitForMultipleObjects(2, cond->events, FALSE, timeout);
EnterCriticalSection(&cond->lock_waiting); EnterCriticalSection(&cond->lock_waiting);
cond->waiting--; cond->waiting--;
if (cond->waiting == 0 && result == (WAIT_OBJECT_0+BROADCAST)) if (cond->waiting == 0)
{ {
/* /*
We're the last waiter to be notified or to stop waiting, so We're the last waiter to be notified or to stop waiting, so
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment