On 25/04/14 11:00, Antti Kantee wrote: > So if you don't do anything, all local threads will run in the context > of process 1. Now, unless you copy the fd by "forking", and assuming > the nginx event loop is something like the following, you'd have a race > condition for the socket:
Actually, let's expand on that a bit more. If you use a separate rump kernel process context, all resources managed by the rump kernel will automatically get freed when you release that context, including other file descriptors etc. opened by the rump kernel while handling the request. So for those resources you get the true semantics of a fork-based worker model. However, what will _not_ get released is any resource you allocated from the host instead of from the rump kernel. This includes e.g. malloc()'d memory. Unless you can successfully patch the code to free those resources (and perhaps convince nginx upstream to take your patches), you still have the option of using the inherently slower remote clients, where a host process fork is possible. ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform _______________________________________________ rumpkernel-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rumpkernel-users
