]> git.pld-linux.org Git - packages/mysql.git/blame - remove_fcntl_excessive_calls.patch
- rel 2; patches updated
[packages/mysql.git] / remove_fcntl_excessive_calls.patch
CommitLineData
b4e1fa2c
AM
1# name : remove_fcntl_excessive_calls.patch
2# introduced : 12
3# maintainer : Oleg
4#
5#!!! notice !!!
6# Any small change to this file in the main branch
7# should be done or reviewed by the maintainer!
db82db79
AM
8--- /dev/null
9+++ b/patch_info/remove_fcntl_excessive_calls.info
b4e1fa2c
AM
10@@ -0,0 +1,6 @@
11+File=remove_fcntl_excessive_calls.patch
12+Name=remove fcntl excessive calls
13+Version=1.0
14+Author=This is a port of the official fix.
15+License=GPL
16+Comment=
db82db79
AM
17--- a/sql/net_serv.cc
18+++ b/sql/net_serv.cc
a9ee80b9
ER
19@@ -61,7 +61,7 @@
20 the client should have a bigger max_allowed_packet.
21 */
22
23-#if defined(__WIN__) || !defined(MYSQL_SERVER)
24+#if (defined(__WIN__) || !defined(MYSQL_SERVER)) && !defined(NO_ALARM)
25 /* The following is because alarms doesn't work on windows. */
26 #ifndef NO_ALARM
27 #define NO_ALARM
b4e1fa2c
AM
28@@ -133,7 +133,7 @@
29 if (vio != 0) /* If real connection */
30 {
31 net->fd = vio_fd(vio); /* For perl DBI/DBD */
32-#if defined(MYSQL_SERVER) && !defined(__WIN__)
33+#if defined(MYSQL_SERVER) && !defined(__WIN__) && !defined(NO_ALARM)
34 if (!(test_flags & TEST_BLOCKING))
35 {
36 my_bool old_mode;
d8778560 37@@ -632,7 +632,7 @@
b4e1fa2c
AM
38 if ((long) (length= vio_write(net->vio,pos,(size_t) (end-pos))) <= 0)
39 {
40 my_bool interrupted = vio_should_retry(net->vio);
41-#if !defined(__WIN__)
42+#if !defined(NO_ALARM) && !defined(__WIN__)
43 if ((interrupted || length == 0) && !thr_alarm_in_use(&alarmed))
44 {
45 if (!thr_alarm(&alarmed, net->write_timeout, &alarm_buff))
d8778560 46@@ -688,7 +688,7 @@
b4e1fa2c
AM
47 pos+=length;
48 update_statistics(thd_increment_bytes_sent(length));
49 }
50-#ifndef __WIN__
51+#if !defined(NO_ALARM) && !defined(__WIN__)
52 end:
53 #endif
54 #ifdef HAVE_COMPRESS
d8778560 55@@ -820,6 +820,7 @@
b4e1fa2c
AM
56 thr_alarm(&alarmed,net->read_timeout,&alarm_buff);
57 #else
58 /* Read timeout is set in my_net_set_read_timeout */
59+ DBUG_ASSERT(net_blocking);
60 #endif /* NO_ALARM */
61
62 pos = net->buff + net->where_b; /* net->packet -4 */
d8778560 63@@ -834,7 +835,7 @@
b4e1fa2c
AM
64
65 DBUG_PRINT("info",("vio_read returned %ld errno: %d",
66 (long) length, vio_errno(net->vio)));
67-#if !defined(__WIN__) || defined(MYSQL_SERVER)
68+#if !defined(NO_ALARM) && (!defined(__WIN__) || defined(MYSQL_SERVER))
69 /*
70 We got an error that there was no data on the socket. We now set up
71 an alarm to not 'read forever', change the socket to non blocking
This page took 0.629249 seconds and 4 git commands to generate.