#At file:///home/jonas/src/telco-6.4/
3131 Jonas Oreland 2008-11-26
ndb - reduce no of calls to checkJobBuffers on platforms wo/ epoll
modified:
storage/ndb/src/common/transporter/TransporterRegistry.cpp
=== modified file 'storage/ndb/src/common/transporter/TransporterRegistry.cpp'
--- a/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2008-11-25 17:02:56 +0000
+++ b/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2008-11-26 10:36:20 +0000
@@ -1065,9 +1065,9 @@ TransporterRegistry::get_tcp_data(TCP_Tr
{
const NodeId node_id = t->getRemoteNodeId();
bool hasdata = false;
- callbackObj->checkJobBuffer();
if (is_connected(node_id) && t->isConnected())
{
+ callbackObj->checkJobBuffer();
t->doReceive();
Uint32 *ptr;
@@ -1115,7 +1115,6 @@ TransporterRegistry::performReceive()
{
for (int i=0; i<nTCPTransporters; i++)
{
- callbackObj->checkJobBuffer();
TCP_Transporter *t = theTCPTransporters[i];
const NodeId nodeId = t->getRemoteNodeId();
const NDB_SOCKET_TYPE socket = t->getSocket();
@@ -1129,6 +1128,7 @@ TransporterRegistry::performReceive()
if (t->hasReceiveData())
{
+ callbackObj->checkJobBuffer();
Uint32 * ptr;
Uint32 sz = t->getReceiveData(&ptr);
callbackObj->transporter_recv_from(nodeId);
@@ -1146,18 +1146,18 @@ TransporterRegistry::performReceive()
//do prepareReceive on the SCI transporters (prepareReceive(t,,,,))
for (int i=0; i<nSCITransporters; i++)
{
- callbackObj->checkJobBuffer();
SCI_Transporter *t = theSCITransporters[i];
const NodeId nodeId = t->getRemoteNodeId();
if(is_connected(nodeId))
{
if(t->isConnected() && t->checkConnected())
{
- Uint32 * readPtr, * eodPtr;
- t->getReceivePtr(&readPtr, &eodPtr);
- callbackObj->transporter_recv_from(nodeId);
- Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
- t->updateReceivePtr(newPtr);
+ callbackObj->checkJobBuffer();
+ Uint32 * readPtr, * eodPtr;
+ t->getReceivePtr(&readPtr, &eodPtr);
+ callbackObj->transporter_recv_from(nodeId);
+ Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
+ t->updateReceivePtr(newPtr);
}
}
}
@@ -1165,17 +1165,17 @@ TransporterRegistry::performReceive()
#ifdef NDB_SHM_TRANSPORTER
for (int i=0; i<nSHMTransporters; i++)
{
- callbackObj->checkJobBuffer();
SHM_Transporter *t = theSHMTransporters[i];
const NodeId nodeId = t->getRemoteNodeId();
if(is_connected(nodeId)){
if(t->isConnected() && t->checkConnected())
{
- Uint32 * readPtr, * eodPtr;
- t->getReceivePtr(&readPtr, &eodPtr);
- callbackObj->transporter_recv_from(nodeId);
- Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
- t->updateReceivePtr(newPtr);
+ callbackObj->checkJobBuffer();
+ Uint32 * readPtr, * eodPtr;
+ t->getReceivePtr(&readPtr, &eodPtr);
+ callbackObj->transporter_recv_from(nodeId);
+ Uint32 *newPtr = unpack(readPtr, eodPtr, nodeId, ioStates[nodeId]);
+ t->updateReceivePtr(newPtr);
}
}
}
| Thread |
|---|
| • bzr commit into mysql-5.1 branch (jonas:3131) | Jonas Oreland | 26 Nov |