Date: Friday, January 12, 2007 @ 16:26:40
Author: gilles
Path: /cvsroot/carob/carob/src
Modified: JavaSocket.cpp (1.68 -> 1.69)
Fixed broken pollOnSingleFd() when using select
----------------+
JavaSocket.cpp | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
Index: carob/src/JavaSocket.cpp
diff -u carob/src/JavaSocket.cpp:1.68 carob/src/JavaSocket.cpp:1.69
--- carob/src/JavaSocket.cpp:1.68 Thu Jan 11 19:37:07 2007
+++ carob/src/JavaSocket.cpp Fri Jan 12 16:26:40 2007
@@ -379,9 +379,12 @@
FD_ZERO(&sfd);
struct timeval tv;
tv.tv_sec = 0;
- tv.tv_usec = pollTimeout*1000; // milli -> micro seconds conversion
- FD_SET(socket_fd, &sfd);
- retVal = select(socket_fd+1, &sfd, NULL, NULL, &tv);
+ tv.tv_usec = pollTimeoutInMs*1000; // milli -> micro seconds conversion
+ FD_SET(socketFd, &sfd);
+ if (pollOnWrites)
+ retVal = select(socketFd+1, NULL, &sfd, NULL, &tv);
+ else
+ retVal = select(socketFd+1, &sfd, NULL, NULL, &tv);
#endif
if (retVal == -1)
{
@@ -403,7 +406,9 @@
int readThisTime = 0; //The size read at each receive
while (!canceled && alreadyRead < len)
{
+ long before = getCurrentTimeInMs();
int retVal = pollOnSingleFd(socket_fd, 1000); // 1000 = 1 second timeout
+ logInfo(L"recvFully", L"pollOnSingleFd took " +
toWString((int64_t)getCurrentTimeInMs()-before));
// if (retVal == 0) => timeout, no response, do nothing
if (retVal > 0) // data is ready to be read
{
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits