summaryrefslogtreecommitdiff
path: root/vio/viosocket.c
diff options
context:
space:
mode:
authorunknown <mskold/marty@linux.site>2006-09-15 16:10:37 +0200
committerunknown <mskold/marty@linux.site>2006-09-15 16:10:37 +0200
commit577c3f0dc3ee3fc4cadca03ddf57ed6c58e4e19f (patch)
treed41bbb3a0bd4f4d27489f786da20d884b681ef2f /vio/viosocket.c
parentc8d44bd71822c752f71c3616399a1e28e283f2a1 (diff)
parentbc4f0bd46203bd96dca5b4a2a7a135fa2bd58ce0 (diff)
downloadmariadb-git-577c3f0dc3ee3fc4cadca03ddf57ed6c58e4e19f.tar.gz
Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.1
into mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb mysql-test/t/ndb_multi.test: Auto merged
Diffstat (limited to 'vio/viosocket.c')
-rw-r--r--vio/viosocket.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/vio/viosocket.c b/vio/viosocket.c
index 0d472be7901..da80c5b536f 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -562,9 +562,13 @@ int vio_write_shared_memory(Vio * vio, const gptr buf, int size)
}
+/**
+ Close shared memory and DBUG_PRINT any errors that happen on closing.
+ @return Zero if all closing functions succeed, and nonzero otherwise.
+*/
int vio_close_shared_memory(Vio * vio)
{
- int r;
+ int error_count= 0;
DBUG_ENTER("vio_close_shared_memory");
if (vio->type != VIO_CLOSED)
{
@@ -578,23 +582,44 @@ int vio_close_shared_memory(Vio * vio)
result if they are success.
*/
if (UnmapViewOfFile(vio->handle_map) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("UnmapViewOfFile() failed"));
+ }
if (CloseHandle(vio->event_server_wrote) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("CloseHandle(vio->esw) failed"));
+ }
if (CloseHandle(vio->event_server_read) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("CloseHandle(vio->esr) failed"));
+ }
if (CloseHandle(vio->event_client_wrote) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("CloseHandle(vio->ecw) failed"));
+ }
if (CloseHandle(vio->event_client_read) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("CloseHandle(vio->ecr) failed"));
+ }
if (CloseHandle(vio->handle_file_map) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("CloseHandle(vio->hfm) failed"));
+ }
if (CloseHandle(vio->event_conn_closed) == 0)
+ {
+ error_count++;
DBUG_PRINT("vio_error", ("CloseHandle(vio->ecc) failed"));
+ }
}
vio->type= VIO_CLOSED;
vio->sd= -1;
- DBUG_RETURN(!r);
+ DBUG_RETURN(error_count);
}
#endif /* HAVE_SMEM */
#endif /* __WIN__ */