summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--storage/archive/ha_archive.cc1
-rw-r--r--vio/viosocket.c7
2 files changed, 7 insertions, 1 deletions
diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc
index a7fda9a471a..d70de0dd13c 100644
--- a/storage/archive/ha_archive.cc
+++ b/storage/archive/ha_archive.cc
@@ -357,6 +357,7 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, int *rc)
{
*rc= my_errno ? my_errno : -1;
pthread_mutex_unlock(&archive_mutex);
+ pthread_mutex_destroy(&share->mutex);
my_free(share, MYF(0));
DBUG_RETURN(NULL);
}
diff --git a/vio/viosocket.c b/vio/viosocket.c
index f47a7a10ad2..f780764cbe4 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -193,6 +193,11 @@ int vio_fastsend(Vio * vio __attribute__((unused)))
int r=0;
DBUG_ENTER("vio_fastsend");
+ if (vio->type == VIO_TYPE_NAMEDPIPE ||vio->type == VIO_TYPE_SHARED_MEMORY)
+ {
+ DBUG_RETURN(0);
+ }
+
#if defined(IPTOS_THROUGHPUT)
{
int tos = IPTOS_THROUGHPUT;
@@ -228,7 +233,7 @@ int vio_keepalive(Vio* vio, my_bool set_keep_alive)
DBUG_ENTER("vio_keepalive");
DBUG_PRINT("enter", ("sd: %d set_keep_alive: %d", vio->sd, (int)
set_keep_alive));
- if (vio->type != VIO_TYPE_NAMEDPIPE)
+ if (vio->type != VIO_TYPE_NAMEDPIPE && vio->type != VIO_TYPE_SHARED_MEMORY)
{
if (set_keep_alive)
opt = 1;