summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/CHANGES2
-rw-r--r--cpp/src/IceUtil/Thread.cpp6
2 files changed, 8 insertions, 0 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES
index e2540e0d776..9c213fc95ee 100644
--- a/cpp/CHANGES
+++ b/cpp/CHANGES
@@ -1,6 +1,8 @@
Changes since version 1.2.0
---------------------------
+- IceUtil::Thread now calls srand() in each new thread (Windows only).
+
- When unmarshaling a string sequence parameter, Ice was not clearing
the vector before appending elements to it. This has been fixed.
diff --git a/cpp/src/IceUtil/Thread.cpp b/cpp/src/IceUtil/Thread.cpp
index bb99ee54841..ba9506965e5 100644
--- a/cpp/src/IceUtil/Thread.cpp
+++ b/cpp/src/IceUtil/Thread.cpp
@@ -189,6 +189,12 @@ startHook(void* arg)
{
IceUtil::Thread* rawThread = static_cast<IceUtil::Thread*>(arg);
+ //
+ // Initialize the random number generator in each thread.
+ //
+ unsigned int seed = static_cast<unsigned int>(IceUtil::Time::now().toMicroSeconds());
+ srand(seed);
+
//
// Ensure that the thread doesn't go away until run() has
// completed.