• unknown's avatar
    MDEV-3802: Millisecond timeout support in non-blocking client library + fix incorrect blocking. · 52c84d14
    unknown authored
    After the merge of VIO stuff from MySQL 5.6, there were some bugs left
    in the non-blocking client library:
    
     - vio_io_wait() was introduced without any support for non-blocking operation,
       so async queries could turn into sync.
    
     - Timeouts were changed to milliseconds, but this was not reflected in the
       non-blocking API, also semantics was changed so signed -1 was used for
       "no timeout" rather than unsigned 0.
    
    Fix by implementing and using my_io_wait_async() in the non-blocking case. And
    by introducing a new mysql_get_timeout_value_ms() API function that provides
    the timeout with millisecond granularity. The old mysql_get_timeout_value()
    is kept and fixed to work correctly, converting the timeout to whole seconds.
    52c84d14
my_context.h 6.33 KB