[prev in list] [next in list] [prev in thread] [next in thread]
List: mysql-internals
Subject: proposed patch for bug#33899
From: Armin Schöffmann <armin.schoeffmann () aegaeon ! de>
Date: 2008-03-18 20:46:08
Message-ID: 1E21D2CC25DEC240850F6CB5B780A8A80131C0 () server ! aegaeon ! de ! local
[Download RAW message or body]
[Attachment #2 (text/plain)]
Hello folks,
http://bugs.mysql.com/bug.php?id=33899 (Client deadlock with shared-memory)
After having quite some trouble with this issue, I finally managed to fix it.
Please verify my changes in viosocket.c - I'd be really thankful, if the patch could \
make it into the next enterprise-build, as I hate to ship private lib/client-builds \
to customers.
Regards,
Armin.
["patch_bug#33899.txt" (text/plain)]
--- viosocket.c 2008-03-18 20:54:02.125254000 +0100
+++ patch_bug#33899_viosocket.c 2008-03-18 20:50:01.584985500 +0100
@@ -479,19 +479,21 @@
int length;
int remain_local;
char *current_postion;
+ HANDLE events[2];
DBUG_ENTER("vio_read_shared_memory");
DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, buf, size));
remain_local = size;
current_postion=buf;
+
+ events[0]= vio->event_server_wrote;
+ events[1]= vio->event_conn_closed;
+
do
{
if (vio->shared_memory_remain == 0)
{
- HANDLE events[2];
- events[0]= vio->event_server_wrote;
- events[1]= vio->event_conn_closed;
/*
WaitForMultipleObjects can return next values:
WAIT_OBJECT_0+0 - event from vio->event_server_wrote
@@ -538,6 +540,7 @@
int length;
uint remain;
HANDLE pos;
+ HANDLE events[2];
int sz;
char *current_postion;
@@ -546,10 +549,14 @@
remain = size;
current_postion = buf;
+
+ events[0]= vio->event_server_read;
+ events[1]= vio->event_conn_closed;
+
while (remain != 0)
{
- if (WaitForSingleObject(vio->event_server_read, vio->net->write_timeout*1000)
- != WAIT_OBJECT_0)
+ if (WaitForMultipleObjects(2,events,FALSE,
+ vio->net->write_timeout*1000) != WAIT_OBJECT_0)
{
DBUG_RETURN(-1);
};
--
MySQL Internals Mailing List
For list archives: http://lists.mysql.com/internals
To unsubscribe: http://lists.mysql.com/internals?unsub=mysql-internals@progressive-comp.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic