Perl 5ã§ fork ããå ´åã«ä¹±æ°ç³»åã親ã¨åãã«ãªã£ã¦ãã¾ãç¾è±¡ã«ã¤ãã¦ã¯éå»ã«ãããããã¨ã³ããªãããã¾ãã
0.23以åã® Starlet ã§ã¯ã親ã§ä¸åº¦ã§ãã©ããã§ rand (ã¾ãã¯srand) ãå¼ã°ãã¦ããã¨ãåæåãããä¹±æ°ç³»åã fork ãããåããã»ã¹ã«ãå¼ãç¶ãããããããã®å¾ã«å®éã®ã¦ã¼ã¶ã¢ããªã±ã¼ã·ã§ã³ãèµ°ãåããã»ã¹å
ã§ rand() ãã¦ãåãç³»åãè¿ã£ã¦ãã¦ãã¾ããã¨ããç¾è±¡ããã£ãã®ã§ããã0.24 ã§ã¯åããã»ã¹çæå¾ã« srand() ãå¼ã°ããããã«ãªãã¾ããã
# æ£ç¢ºã«ããã¨ã0.14 ã§ --min-reqs-per-child ããµãã¼ããããã¿ã¤ãã³ã°ã§ã--min-reqs-per-child ãæå®ããã¦ããå ´åã®ã¿ãsrand() ãå¼ã°ãã¦ããã®ã§ããããããããã©ã«ãã®åä½ã«ãªãã¾ããã
ãªã®ã§ POSIX::AtFork ã§ãã«ããã«ãã¨ããã¢ããªã±ã¼ã·ã§ã³å´ã§ã®å¯¾å¦ã¯ä¸è¦ã«ãªã£ã¦ãã¾ãã
Starlet åæ§ã«ããã¥ã©ã¼ãª prefork ã¿ã¤ãã®å®è£ ã§ãã Starman ã§ã¯ã以åããåããã»ã¹ã®åæåå¦çã§ srand() ãå¼ã°ãã¦ãã¾ãã
注æç¹ã¨ãã¦ã¯ãååããã»ã¹ã§ä¹±æ°ç³»åãåããã¨ãæå¾ ãã¦ããã¢ããªã±ã¼ã·ã§ã³ã¯æåãå¤ãã£ã¦ãã¾ãã¾ãããæ®éãªãã§ãããâ¦? ãã®å ´åã¯åå¥ã«åä¸å¼æ°ã§ srand ãå®è¡ãã¦æããã°ãããã¨æãã¾ãã
kazuho++