diff options
author | wax@kishkin.ru <> | 2004-12-14 19:24:19 +0500 |
---|---|---|
committer | wax@kishkin.ru <> | 2004-12-14 19:24:19 +0500 |
commit | 0c8a78cca1ec1a8a93d80dd7355eba4123ccbe2c (patch) | |
tree | 33fb11fbd7696108090cda9adc1e0eccfe052c1c /sql-common | |
parent | e81d48fdd94799e2aa1c2d593011888c5e2f7c96 (diff) | |
download | mariadb-git-0c8a78cca1ec1a8a93d80dd7355eba4123ccbe2c.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
Diffstat (limited to 'sql-common')
-rw-r--r-- | sql-common/client.c | 12 |
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) |