Here's a demonstration of several processes inheriting rand's seed. The srand solution suggested seems necessary if anything seeds rand before fork.
With srand; inserted as the first thing in each child, we get, say,#!/usr/bin/perl my ($foo, %kid) = rand; for (1..10) { $kid{my $cpid = fork} = undef; defined $cpid or delete( $kid{""}), next; $cpid and next; print rand, $/; exit(0); } delete $kid{+wait} while %kid; __END__ 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209 0.292121652604209
0.458016411009343 0.922388048683391 0.938946679075347 0.358693821662204 0.88636225422761 0.519188953171582 0.459808857952343 0.982476360703917 0.626396972061233 0.824876680345373
After Compline,
Zaxo
In reply to Re: Poor randomness with File::Temp and fork().
by Zaxo
in thread Poor randomness with File::Temp and fork().
by BazB
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |