summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Nozdrin <alik@sun.com>2009-10-14 11:17:49 +0400
committerAlexander Nozdrin <alik@sun.com>2009-10-14 11:17:49 +0400
commit32e51de7f58d6f3e82c97fe9ab37d8d8246b762b (patch)
tree739b359b49861a33a973f709d1dd17a9a26abc1d
parent12a4c67b2219faa05b3064cd709dafec58a0971b (diff)
parent0e8c86f4263be0ae55607437c7276721de6a8fe9 (diff)
downloadmariadb-git-32e51de7f58d6f3e82c97fe9ab37d8d8246b762b.tar.gz
Merge from mysql-5.1.
-rw-r--r--mysql-test/lib/mtr_cases.pm20
-rw-r--r--mysys/my_wincond.c3
2 files changed, 20 insertions, 3 deletions
diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
index 448abb5bcbe..36bcf76f1bd 100644
--- a/mysql-test/lib/mtr_cases.pm
+++ b/mysql-test/lib/mtr_cases.pm
@@ -69,6 +69,10 @@ require "mtr_misc.pl";
my $do_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.
my $some_test_found;
@@ -103,6 +107,17 @@ sub collect_test_cases ($$) {
$do_test_reg= init_pattern($do_test, "--do-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))
{
push(@$cases, collect_one_suite($suite, $opt_cases));
@@ -915,8 +930,11 @@ sub collect_one_test_case {
{
# innodb is not supported, skip it
$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";
- return $tinfo;
+ # But continue processing if we may run it with innodb plugin
+ return $tinfo unless $do_innodb_plugin;
}
}
else
diff --git a/mysys/my_wincond.c b/mysys/my_wincond.c
index d1b07b61408..1134d40229a 100644
--- a/mysys/my_wincond.c
+++ b/mysys/my_wincond.c
@@ -120,13 +120,12 @@ int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
LeaveCriticalSection(&cond->lock_waiting);
LeaveCriticalSection(mutex);
-
result= WaitForMultipleObjects(2, cond->events, FALSE, timeout);
EnterCriticalSection(&cond->lock_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