That's painful sometimes:The use case is to daemonize the process with threads.Yes - you need to detach then create the threads.
You first need to detach it from its parent, then use TIOCNOTTY
ioctl to detach from the tty (TIOCNOTTY_GRP doesn't seem
to exist too, though, but might be easy to implement).
There are a few workarounds to that that I am aware of,
but what exactly interfaces do you have in mind? I have
found nothing that allows to do the same without a workarounds
like this:
https://lkml.org/lkml/2011/4/8/278
The current way of detaching, which is a fork/exit combo,
loses all threads, so, when you call daemon() and you had
threads, you are a toast.
The reason I ask is you appear to add overhead to various hot paths andI don't think there is a real code overhead: the new list is
you add 48 bytes to each task struct if I read the code right. Thats half
a megabyte on a server running a pile of java gunge !