diff options
-rw-r--r-- | cpp/CHANGES | 2 | ||||
-rw-r--r-- | cpp/src/IceUtil/Thread.cpp | 6 |
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. |