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;