summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorserg@serg.mylan <>2004-12-23 17:40:22 +0100
committerserg@serg.mylan <>2004-12-23 17:40:22 +0100
commitd38db21048a54be902fbea38bebd4a916c013a8d (patch)
treeb2ce9145a37800d87078304e633c9840a177ffec /sql
parent7960b09bca3a5732455feb5cbc344bf15b327e30 (diff)
parent91767a1099ee2efb607ac198d1ecebb924c59405 (diff)
downloadmariadb-git-d38db21048a54be902fbea38bebd4a916c013a8d.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
Diffstat (limited to 'sql')
-rw-r--r--sql/mysqld.cc50
1 files changed, 33 insertions, 17 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index e6e079d3deb..bebecb394e9 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -3822,6 +3822,7 @@ pthread_handler_decl(handle_connections_shared_memory,arg)
HANDLE event_client_read= 0; // for transfer data server <-> client
HANDLE event_server_wrote= 0;
HANDLE event_server_read= 0;
+ HANDLE event_conn_closed= 0;
THD *thd= 0;
p= int10_to_str(connect_number, connect_number_char, 10);
@@ -3852,29 +3853,35 @@ pthread_handler_decl(handle_connections_shared_memory,arg)
goto errorconn;
}
strmov(suffix_pos, "CLIENT_WROTE");
- if ((event_client_wrote= CreateEvent(0,FALSE,FALSE,tmp)) == 0)
+ if ((event_client_wrote= CreateEvent(0, FALSE, FALSE, tmp)) == 0)
{
errmsg= "Could not create client write event";
goto errorconn;
}
strmov(suffix_pos, "CLIENT_READ");
- if ((event_client_read= CreateEvent(0,FALSE,FALSE,tmp)) == 0)
+ if ((event_client_read= CreateEvent(0, FALSE, FALSE, tmp)) == 0)
{
errmsg= "Could not create client read event";
goto errorconn;
}
strmov(suffix_pos, "SERVER_READ");
- if ((event_server_read= CreateEvent(0,FALSE,FALSE,tmp)) == 0)
+ if ((event_server_read= CreateEvent(0, FALSE, FALSE, tmp)) == 0)
{
errmsg= "Could not create server read event";
goto errorconn;
}
strmov(suffix_pos, "SERVER_WROTE");
- if ((event_server_wrote= CreateEvent(0,FALSE,FALSE,tmp)) == 0)
+ if ((event_server_wrote= CreateEvent(0, FALSE, FALSE, tmp)) == 0)
{
errmsg= "Could not create server write event";
goto errorconn;
}
+ strmov(suffix_pos, "CONNECTION_CLOSED");
+ if ((event_conn_closed= CreateEvent(0, TRUE , FALSE, tmp)) == 0)
+ {
+ errmsg= "Could not create closed connection event";
+ goto errorconn;
+ }
if (abort_loop)
goto errorconn;
if (!(thd= new THD))
@@ -3893,13 +3900,14 @@ pthread_handler_decl(handle_connections_shared_memory,arg)
goto errorconn;
}
if (!(thd->net.vio= vio_new_win32shared_memory(&thd->net,
- handle_client_file_map,
- handle_client_map,
- event_client_wrote,
- event_client_read,
- event_server_wrote,
- event_server_read)) ||
- my_net_init(&thd->net, thd->net.vio))
+ handle_client_file_map,
+ handle_client_map,
+ event_client_wrote,
+ event_client_read,
+ event_server_wrote,
+ event_server_read,
+ event_conn_closed)) ||
+ my_net_init(&thd->net, thd->net.vio))
{
close_connection(thd, ER_OUT_OF_RESOURCES, 1);
errmsg= 0;
@@ -3919,12 +3927,20 @@ errorconn:
NullS);
sql_perror(buff);
}
- if (handle_client_file_map) CloseHandle(handle_client_file_map);
- if (handle_client_map) UnmapViewOfFile(handle_client_map);
- if (event_server_wrote) CloseHandle(event_server_wrote);
- if (event_server_read) CloseHandle(event_server_read);
- if (event_client_wrote) CloseHandle(event_client_wrote);
- if (event_client_read) CloseHandle(event_client_read);
+ if (handle_client_file_map)
+ CloseHandle(handle_client_file_map);
+ if (handle_client_map)
+ UnmapViewOfFile(handle_client_map);
+ if (event_server_wrote)
+ CloseHandle(event_server_wrote);
+ if (event_server_read)
+ CloseHandle(event_server_read);
+ if (event_client_wrote)
+ CloseHandle(event_client_wrote);
+ if (event_client_read)
+ CloseHandle(event_client_read);
+ if (event_conn_closed)
+ CloseHandle(event_conn_closed);
delete thd;
}