summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-12-09 19:54:51 +0000
committerMarc Laukien <marc@zeroc.com>2001-12-09 19:54:51 +0000
commitff2cdbada1355055b60e36a53d8bdb160abacc0a (patch)
treece00902f17e79811f65c149354584e8fed440231 /cpp/src
parentfixes (diff)
downloadice-ff2cdbada1355055b60e36a53d8bdb160abacc0a.tar.bz2
ice-ff2cdbada1355055b60e36a53d8bdb160abacc0a.tar.xz
ice-ff2cdbada1355055b60e36a53d8bdb160abacc0a.zip
lots of fixes
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/ThreadPool.cpp8
-rw-r--r--cpp/src/Ice/ThreadPool.h3
-rw-r--r--cpp/src/IceStorm/icestorm.dsp4
3 files changed, 13 insertions, 2 deletions
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp
index 6c06abedde3..bbe5c2be390 100644
--- a/cpp/src/Ice/ThreadPool.cpp
+++ b/cpp/src/Ice/ThreadPool.cpp
@@ -160,6 +160,9 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance) :
FD_ZERO(&_fdSet);
FD_SET(_fdIntrRead, &_fdSet);
+#ifdef WIN32 // Optimization for WIN32 fd_set
+ _fdIntrReadIdx = _fdSet.fd_count - 1;
+#endif
_maxFd = _fdIntrRead;
_minFd = _fdIntrRead;
@@ -310,7 +313,12 @@ IceInternal::ThreadPool::run()
}
bool interrupt = false;
+
+#ifdef WIN32 // Optimization for WIN32 fd_set
+ if (fdSet.fd_array[_fdIntrReadIdx] == static_cast<SOCKET>(_fdIntrRead))
+#else
if (FD_ISSET(_fdIntrRead, &fdSet))
+#endif
{
shutdown = clearInterrupt();
interrupt = true;
diff --git a/cpp/src/Ice/ThreadPool.h b/cpp/src/Ice/ThreadPool.h
index 40023194af6..bf68fa51127 100644
--- a/cpp/src/Ice/ThreadPool.h
+++ b/cpp/src/Ice/ThreadPool.h
@@ -58,6 +58,9 @@ private:
int _fdIntrRead;
int _fdIntrWrite;
fd_set _fdSet;
+#ifdef WIN32
+ int _fdIntrReadIdx;
+#endif
std::vector<std::pair<int, EventHandlerPtr> > _adds;
std::vector<int> _removes;
std::map<int, std::pair<EventHandlerPtr, std::list<int>::iterator> > _handlerMap;
diff --git a/cpp/src/IceStorm/icestorm.dsp b/cpp/src/IceStorm/icestorm.dsp
index f10244e686d..f2875f19c45 100644
--- a/cpp/src/IceStorm/icestorm.dsp
+++ b/cpp/src/IceStorm/icestorm.dsp
@@ -44,7 +44,7 @@ RSC=rc.exe
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBRARY_EXPORTS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I ".." /I "../../include" /D "NDEBUG" /D "_USRDLL" /D "ICE_STORM_API_EXPORTS" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
-# SUBTRACT CPP /Z<none> /Fr
+# SUBTRACT CPP /Fr
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ws2_32.lib jtc.lib /nologo /dll /machine:I386 /out:"Debug/icestorm001.dll" /libpath:"../../../lib"
+# ADD LINK32 ws2_32.lib jtc.lib /nologo /dll /machine:I386 /out:"Release/icestorm001.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /pdb:none
# Begin Special Build Tool
SOURCE="$(InputPath)"