summaryrefslogtreecommitdiff
path: root/vio/viosocket.c
diff options
context:
space:
mode:
authorMats Kindahl <mats.kindahl@oracle.com>2010-06-07 16:01:39 +0200
committerMats Kindahl <mats.kindahl@oracle.com>2010-06-07 16:01:39 +0200
commit3682329cc3506a5ebb479ac4eb5a93ed7aeaebc3 (patch)
tree9847347680761d8f4c4b62925c7d5b147777787f /vio/viosocket.c
parenta7a415ee8e294a8d93cd0a31666d86e02cd47885 (diff)
downloadmariadb-git-3682329cc3506a5ebb479ac4eb5a93ed7aeaebc3.tar.gz
WL#5363: Thread Pool Service Interface
In order to allow thread schedulers to be dynamically loaded, it is necessary to make the following changes to the server: - Two new service interfaces - Modifications to InnoDB to inform the thread scheduler of state changes. - Changes to the VIO subsystem for checking if data is available on a socket. - Elimination of remains of the old thread pool implementation. The two new service interfaces introduces are: my_thread_scheduler A service interface to register a thread scheduler. thd_wait A service interface to inform thread scheduler that the thread is about to start waiting. In addition, the patch adds code that: - Add a call to thd_wait for table locks in mysys thd_lock.c by introducing a set function that can be used to set a callback to be used when waiting on a lock and resuming from waiting. - Calling the mysys set function from the server to set the callbacks correctly.
Diffstat (limited to 'vio/viosocket.c')
-rw-r--r--vio/viosocket.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vio/viosocket.c b/vio/viosocket.c
index 6c361e4a462..e60fe9bb225 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -98,6 +98,10 @@ size_t vio_read_buff(Vio *vio, uchar* buf, size_t size)
#undef VIO_UNBUFFERED_READ_MIN_SIZE
}
+my_bool vio_buff_has_data(Vio *vio)
+{
+ return (vio->read_pos != vio->read_end);
+}
size_t vio_write(Vio * vio, const uchar* buf, size_t size)
{