不要nuwa直接用plugin-container 都可以,说明nuwa非必要。
Nuwa加plugin目的在于创建prealloc,加快进程创建时的响应速度。
如果nuwa忙不过来,就直接从b2g调plungin来fork进程,再给子进程。
nuwa中做的工作就是把支持Nuwa的线程冻结起来,加以复制,丢到prealloc里,并在复制完之后repalace 恢复。然后到b2g请求app进程时唤醒/创建具体特殊线程,并将控制权交给相应的APP???
gecko/ipc/mozglue/进程fork模块:结合Log分析nuwa.cpp,nuwa的主要工作就是冻结线程,复制之,于fork出的新进程中恢复。简单说,以nuwa为模板,复制基本公用的线程,待有实际APP触发,为其创建特殊的线程,并将进程控制权交之。