View | Details | Raw Unified | Return to bug 1192
Collapse All | Expand All

(-)a/src/core/model/random-variable.cc (+5 lines)
 Lines 64-69    Link Here 
64
void SeedManager::SetSeed (uint32_t seed)
64
void SeedManager::SetSeed (uint32_t seed)
65
{
65
{
66
  Config::SetGlobal ("RngSeed", IntegerValue (seed));
66
  Config::SetGlobal ("RngSeed", IntegerValue (seed));
67
  
68
  // A call to SeedManager::SetSeed is an explicit request for a reproducible
69
  // state. RngStream does not re-initialize itself after setting the global
70
  // value above, unless we explicitly call SetPackageSeed.
71
  RngStream::SetPackageSeed(seed);
67
}
72
}
68
73
69
void SeedManager::SetRun (uint32_t run)
74
void SeedManager::SetRun (uint32_t run)
(-)a/src/core/model/rng-stream.cc (-3 / +7 lines)
 Lines 305-311    Link Here 
305
RngStream::EnsureGlobalInitialized (void)
305
RngStream::EnsureGlobalInitialized (void)
306
{
306
{
307
  static bool initialized = false;
307
  static bool initialized = false;
308
  static uint32_t run = 0;
308
  uint32_t run = 0;
309
  
310
  IntegerValue value;
311
  g_rngRun.GetValue (value);
312
  run = value.Get ();
313
  
309
  if (!initialized)
314
  if (!initialized)
310
    {
315
    {
311
      initialized = true;
316
      initialized = true;
 Lines 313-322    Link Here 
313
      IntegerValue value;
318
      IntegerValue value;
314
      g_rngSeed.GetValue (value);
319
      g_rngSeed.GetValue (value);
315
      seed = value.Get ();
320
      seed = value.Get ();
316
      g_rngRun.GetValue (value);
317
      run = value.Get ();
318
      SetPackageSeed (seed);
321
      SetPackageSeed (seed);
319
    }
322
    }
323
    
320
  return run;
324
  return run;
321
}
325
}
322
326

Return to bug 1192