diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2007-05-18 11:06:03 +0200 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2007-05-18 11:06:03 +0200 |
commit | a5731933a1877dafad0783a226460067bd91bb70 (patch) | |
tree | 57a8da2b5010d6c13c52178e35b6a7e6363b1ca9 /ndb | |
parent | 9bfed5190a93327194ed323c6d80a23956ef3c07 (diff) | |
download | mariadb-git-a5731933a1877dafad0783a226460067bd91bb70.tar.gz |
ndb - bug#28443
review comment
if some tcp-transporter has data, then do select with timeout 0
ndb/src/common/transporter/TransporterRegistry.cpp:
review comment
if some tcp-transporter has data, then do select with timeout 0
Diffstat (limited to 'ndb')
-rw-r--r-- | ndb/src/common/transporter/TransporterRegistry.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/ndb/src/common/transporter/TransporterRegistry.cpp b/ndb/src/common/transporter/TransporterRegistry.cpp index c0ee93a8489..c459b5640dc 100644 --- a/ndb/src/common/transporter/TransporterRegistry.cpp +++ b/ndb/src/common/transporter/TransporterRegistry.cpp @@ -814,22 +814,6 @@ TransporterRegistry::poll_TCP(Uint32 timeOutMillis) return 0; } - struct timeval timeout; -#ifdef NDB_OSE - // Return directly if there are no TCP transporters configured - - if(timeOutMillis <= 1){ - timeout.tv_sec = 0; - timeout.tv_usec = 1025; - } else { - timeout.tv_sec = timeOutMillis / 1000; - timeout.tv_usec = (timeOutMillis % 1000) * 1000; - } -#else - timeout.tv_sec = timeOutMillis / 1000; - timeout.tv_usec = (timeOutMillis % 1000) * 1000; -#endif - NDB_SOCKET_TYPE maxSocketValue = -1; // Needed for TCP/IP connections @@ -855,6 +839,24 @@ TransporterRegistry::poll_TCP(Uint32 timeOutMillis) hasdata |= t->hasReceiveData(); } + timeOutMillis = hasdata ? 0 : timeOutMillis; + + struct timeval timeout; +#ifdef NDB_OSE + // Return directly if there are no TCP transporters configured + + if(timeOutMillis <= 1){ + timeout.tv_sec = 0; + timeout.tv_usec = 1025; + } else { + timeout.tv_sec = timeOutMillis / 1000; + timeout.tv_usec = (timeOutMillis % 1000) * 1000; + } +#else + timeout.tv_sec = timeOutMillis / 1000; + timeout.tv_usec = (timeOutMillis % 1000) * 1000; +#endif + // The highest socket value plus one maxSocketValue++; |