summaryrefslogtreecommitdiff
path: root/sql-common
diff options
context:
space:
mode:
authorunknown <wax@kishkin.ru>2004-12-14 19:24:19 +0500
committerunknown <wax@kishkin.ru>2004-12-14 19:24:19 +0500
commit79a0ed6232233f6c85c83fbee4e27e594a7149db (patch)
tree33fb11fbd7696108090cda9adc1e0eccfe052c1c /sql-common
parent820d68d9033ed566177a4ff9c2c4c1e98b0deb6e (diff)
downloadmariadb-git-79a0ed6232233f6c85c83fbee4e27e594a7149db.tar.gz
BUG#6056
(continue) added event_conn_closed replaced WaitForSingleObject on WaitForMultipleObjects inserted a check in vio_close() added SetEvent() for event_conn_closed include/violite.h: added event_conn_closed sql-common/client.c: added event_conn_closed sql/mysqld.cc: added event_conn_closed vio/vio.c: added event_conn_closed vio/viosocket.c: replaced WaitForSingleObject on WaitForMultipleObjects inserted a check in vio_close() added SetEvent() for event_conn_closed
Diffstat (limited to 'sql-common')
-rw-r--r--sql-common/client.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sql-common/client.c b/sql-common/client.c
index b847c467b85..0714ca4291f 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -396,6 +396,7 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
HANDLE event_server_read = NULL;
HANDLE event_client_wrote = NULL;
HANDLE event_client_read = NULL;
+ HANDLE event_conn_closed = NULL;
HANDLE handle_file_map = NULL;
ulong connect_number;
char connect_number_char[22], *p;
@@ -508,6 +509,13 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
goto err2;
}
+
+ strmov(suffix_pos, "CONNECTION_CLOSED");
+ if ((event_conn_closed = OpenEvent(EVENT_ALL_ACCESS,FALSE,tmp)) == NULL)
+ {
+ error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
+ goto err2;
+ }
/*
Set event that server should send data
*/
@@ -519,7 +527,7 @@ err2:
net->vio= vio_new_win32shared_memory(net,handle_file_map,handle_map,
event_server_wrote,
event_server_read,event_client_wrote,
- event_client_read);
+ event_client_read,event_conn_closed);
}
else
{
@@ -532,6 +540,8 @@ err2:
CloseHandle(event_client_read);
if (event_client_wrote)
CloseHandle(event_client_wrote);
+ if (event_conn_closed)
+ CloseHandle(event_conn_closed);
if (handle_map)
UnmapViewOfFile(handle_map);
if (handle_file_map)