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

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

Reply to
karthikbalaguru
Loading thread data ...

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

Reply to
karthikbalaguru

OOps ?!?!

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

How would you do this ?

-Michael

Reply to
Michael Schnell

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

Reply to
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
Reply to
Wolfgang Draxinger

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

Reply to
Michael Schnell

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

-Michael

Reply to
Michael Schnell

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.