mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Fix for bug #33304: Test 'func_group' hangs on Mac OS X 10.4 PowerPC 64-bit
Problem: SLEEP(0) never returns on 64-bit Mac OS X due to a bug in pthread_cond_timedwait(). Fix: when given a very short timeout just return immediately.
This commit is contained in:
parent
3b5c25ba65
commit
fe6d4aef3a
1 changed files with 12 additions and 0 deletions
|
@ -3729,6 +3729,18 @@ longlong Item_func_sleep::val_int()
|
|||
DBUG_ASSERT(fixed == 1);
|
||||
|
||||
double time= args[0]->val_real();
|
||||
/*
|
||||
On 64-bit OSX pthread_cond_timedwait() waits forever
|
||||
if passed abstime time has already been exceeded by
|
||||
the system time.
|
||||
When given a very short timeout (< 10 mcs) just return
|
||||
immediately.
|
||||
We assume that the lines between this test and the call
|
||||
to pthread_cond_timedwait() will be executed in less than 0.00001 sec.
|
||||
*/
|
||||
if (time < 0.00001)
|
||||
return 0;
|
||||
|
||||
set_timespec_nsec(abstime, (ulonglong)(time * ULL(1000000000)));
|
||||
|
||||
pthread_cond_init(&cond, NULL);
|
||||
|
|
Loading…
Reference in a new issue