1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-3802. Millisecond timeout support in non-blocking client library.

In 10.0, VIO timeouts can be in milliseconds, so we add a new function
mysql_get_timeout_value_ms() which can return millisecond-precision
timeout values.

In 5.5, we do not have millisecond precision for timeouts. But we still
provide the mysql_get_timeout_value_ms() function; this makes it easier
for applications as they can use the millisecond function in 10.0 and
still work with the 5.5 version of the client library.
This commit is contained in:
unknown
2012-10-12 10:54:46 +02:00
parent 8215ce4695
commit fc941f8a21
3 changed files with 24 additions and 0 deletions

View File

@ -246,6 +246,28 @@ mysql_get_timeout_value(const MYSQL *mysql)
}
/*
In 10.0, VIO timeouts are in milliseconds, so we support getting the
millisecond timeout value from async applications.
In 5.5, timeouts are always in seconds, but we support the 10.0 version
that provides milliseconds, so applications can work with either version
of the library easily.
When merging this to 10.0, this function must be removed and the 10.0
version used.
*/
unsigned int STDCALL
mysql_get_timeout_value_ms(const MYSQL *mysql)
{
unsigned int timeout= mysql->options.extension->async_context->timeout_value;
if (timeout <= UINT_MAX / 1000)
return timeout*1000;
else
return UINT_MAX;
}
/*
Now create non-blocking definitions for all the calls that may block.