Re: Multithreaded qsort(3)
- From: Dan Nelson <dnelson@xxxxxxxxxxxxxxx>
- Date: Sun, 18 Mar 2007 15:25:15 -0500
In the last episode (Mar 18), Giorgos Keramidas said:
On 2007-03-17 23:43, Kip Macy <kip.macy@xxxxxxxxx> wrote:
Reminds me of how Solaris blindly uses vfork for implementing
system(3). It was very easy for a naive user (me) to call system
from a multi-threaded python application. I had numerous failures
that were impossible to track back to system(3).
It seems like an 'obvious' optimization, though. vfork() will block
the parent process until the child runs exec(), and the whole purpose
of system is to exec() a shell and run an external command.
Can you elaborate on the problems you were seeing? It sounds like
something both interesting and educational :)
Btw - the Solaris 10 system manpage only mentions signal interactions
as the cause for MT-unsafeness:
"The system() function manipulates the signal handlers for SIGINT,
SIGQUIT, and SIGCHLD. It is therefore not safe to call system()
in a multithreaded process, since some other thread that
manipulates these signal handlers and a thread that concurrently
calls system() can interfere with each other in a destructive
manner. If, however, no such other thread is active, system() can
safely be called concurrently from multiple threads. See
popen(3C) for an alternative to system() that is thread-safe."
It looks like there were some vfork-related system() bugs in older
versions of Solaris, but they appear to have been fixed:
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=4332595
--
Dan Nelson
dnelson@xxxxxxxxxxxxxxx
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: Multithreaded qsort(3)
- From: Giorgos Keramidas
- Re: Multithreaded qsort(3)
- References:
- Multithreaded qsort(3)
- From: Diomidis Spinellis
- Re: Multithreaded qsort(3)
- From: Max Laier
- Re: Multithreaded qsort(3)
- From: John-Mark Gurney
- Re: Multithreaded qsort(3)
- From: Kip Macy
- Re: Multithreaded qsort(3)
- From: Giorgos Keramidas
- Multithreaded qsort(3)
- Prev by Date: Re: Multithreaded qsort(3)
- Next by Date: Re: Multithreaded qsort(3)
- Previous by thread: Re: Multithreaded qsort(3)
- Next by thread: Re: Multithreaded qsort(3)
- Index(es):
Relevant Pages
|
|