4 ms·
Can you explain more? My understanding (which seems to be backed up by the implementation) is that I can call initstate_r in each thread to initialize thread-lo
by mjb 12y ago
Can you explain more? My understanding (which seems to be backed up by the implementation) is that I can call initstate_r in each thread to initialize thread-local state, then call random_r without synchronization from each thread as long as I used that thread's thread-local state.
random_r's internal state is all, from what I can see of the implementation, entirely passed in by the caller. Implementation here:
https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/random_r.c;h=87cfdc285c0f6e4a4911eac0f6dd5efa2c3fb8b6;hb=9752c3cdbce2b3b8338abf09c8b9dd9e78908b8a https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/rand...
- ScottBurson 12y agoYou are correct, and 'fche is mistaken. Each 'random_data' object is accessed only from a single thread.