in reply to (supposingly) threads now being fork()'ed...

This makes perfectly sense, at least if you're in Linux - try using ps afx to see the process list. In Linux, every thread shows up as a different process, even if the creation process uses the clone system call that makes the right thing. This allows the creation of user space thread libraries, even if it has drawbacks which make the implementation depart significantly from POSIX in some areas.

When you use threads in Linux, a special control thread is created to manage all the other subthreads; moreover, you have to take into account the main thread, i.e. the one that starts it all:

my-test-program.pl # Main thread \_ my-test-program.pl # Control thread \_ my-test-program.pl # 1st subthread \_ my-test-program.pl # 2nd subthread \_ my-test-program.pl # 3rd subthread
so they sum up to 5.

As a side note, please take a look to the Writeup Formatting Tips.

Flavio
perl -ple'$_=reverse' <<<ti.xittelop@oivalf

Don't fool yourself.