File tree Expand file tree Collapse file tree 1 file changed +10
-16
lines changed
Expand file tree Collapse file tree 1 file changed +10
-16
lines changed Original file line number Diff line number Diff line change @@ -48,34 +48,28 @@ struct ReseedingCore {
4848impl Generator for ReseedingCore {
4949 type Output = Results ;
5050
51+ #[ inline( always) ]
5152 fn generate ( & mut self , results : & mut Results ) {
5253 if self . inner . get_block_pos ( ) >= RESEED_BLOCK_THRESHOLD {
53- // We get better performance by not calling only `reseed` here
54- // and continuing with the rest of the function, but by directly
55- // returning from a non-inlined function.
56- return self . reseed_and_generate ( results) ;
54+ trace ! ( "Reseeding RNG (periodic reseed)" ) ;
55+
56+ if let Err ( e) = self . reseed ( ) {
57+ warn ! ( "Reseeding RNG failed: {}" , e) ;
58+ let _ = e;
59+ }
60+
61+ self . inner . generate ( results) ;
5762 }
5863 self . inner . generate ( results) ;
5964 }
6065}
6166
6267impl ReseedingCore {
6368 /// Reseed the internal PRNG.
69+ #[ cold]
6470 fn reseed ( & mut self ) -> Result < ( ) , SysError > {
6571 Core :: try_from_rng ( & mut SysRng ) . map ( |result| self . inner = result)
6672 }
67-
68- #[ inline( never) ]
69- fn reseed_and_generate ( & mut self , results : & mut Results ) {
70- trace ! ( "Reseeding RNG (periodic reseed)" ) ;
71-
72- if let Err ( e) = self . reseed ( ) {
73- warn ! ( "Reseeding RNG failed: {}" , e) ;
74- let _ = e;
75- }
76-
77- self . inner . generate ( results) ;
78- }
7973}
8074
8175/// A reference to the thread-local generator
You can’t perform that action at this time.
0 commit comments