Duplication of all threads or A new process with only one thread

May 02, 2008 6 Replies

Hi,



Will there be duplication of all threads OR a new process with only one thread be created for a fork call by a thread in a process ?



Thx in advans, Karthik Balaguru


I got the below info from

formatting link
" The POSIX 1c standard defines a thread calling fork() to duplicate only the calling thread in the new process; and an execve() from a thread would stop all threads of that process."

Thx, Karthik Balaguru

OOps ?!?!

Hence it would be impossible to spawn a new process from a multithreaded process.

How would you do this ?

-Michael

Usually, the new forked process (inheriting only one thread) is calling execve() and not the multithreaded process that calls fork() in one of its threads.

-- hns

The usual way:

fork (creates a new process with only one thread running) ->

execve (replaces the process image).

Wolfgang Draxinger

E-Mail address works, Jabber: hexarith@jabber.org, ICQ: 134682867

I see: the child created with fork is considered to be a new process and not a thread of the parent process.

That brings up the question: how to create a new thread. But don't bother, I'll be using the pthread library to do that for me :).

Thanks,

-Michael

Thanks. hat is how I had supposed it would be done. I was confused by the cited text.

-Michael

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required