Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/thread.cfa

    r12b5e94a rc655650  
    1010// Created On       : Tue Jan 17 12:27:26 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jan 15 14:34:58 2022
    13 // Update Count     : 45
     12// Last Modified On : Sat Feb 12 08:45:33 2022
     13// Update Count     : 65
    1414//
    1515
     
    2525#include "invoke.h"
    2626
    27 extern uint32_t __global_random_seed;
     27extern uint32_t __global_random_seed, __global_random_prime, __global_random_mask;
    2828
    2929//-----------------------------------------------------------------------------
     
    4545        preferred = ready_queue_new_preferred();
    4646        last_proc = 0p;
    47         random_state = __global_random_seed;
     47        random_state = __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtscl();
    4848        #if defined( __CFA_WITH_VERIFY__ )
    4949                canary = 0x0D15EA5E0D15EA5Ep;
     
    178178        active_thread()->random_state = __global_random_seed = seed;
    179179        GENERATOR( active_thread()->random_state );
     180        __global_random_prime = active_thread()->random_state;
     181        __global_random_mask = true;
    180182} // set_seed
    181183
Note: See TracChangeset for help on using the changeset viewer.