diff options
author | Alexander Nozdrin <alik@sun.com> | 2009-10-14 11:17:49 +0400 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2009-10-14 11:17:49 +0400 |
commit | 32e51de7f58d6f3e82c97fe9ab37d8d8246b762b (patch) | |
tree | 739b359b49861a33a973f709d1dd17a9a26abc1d | |
parent | 12a4c67b2219faa05b3064cd709dafec58a0971b (diff) | |
parent | 0e8c86f4263be0ae55607437c7276721de6a8fe9 (diff) | |
download | mariadb-git-32e51de7f58d6f3e82c97fe9ab37d8d8246b762b.tar.gz |
Merge from mysql-5.1.
-rw-r--r-- | mysql-test/lib/mtr_cases.pm | 20 | ||||
-rw-r--r-- | mysys/my_wincond.c | 3 |
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 |