linux - issue with fork() from a firebreath npapi plugin -
i trying fork() new process can call separate console application.
the fork happen fine , new process id process in sleeping state , not active @ if browser exits.
i took sample plugin project , modified echo method fork.
a regular console application works fine fork code.
is there different has taken account firebreath plugin app?
can suggest might issue?
the platform archlinux 64 bit.
fb::variant plugintestvzapi::echo(const fb::variant& msg) { static int n(0); fire_echo("so far, clicked many times: ", n++); // fork pid_t pid = fork(); if(pid == 0) // child { m_host->htmllog("child process"); } else if (pid < 0) // failed fork { m_host->htmllog("failed fork"); m_host->htmllog(boost::lexical_cast<std::string>(pid)); } else // parent { m_host->htmllog("parent process"); } m_host->htmllog("child process pid = " + boost::lexical_cast<std::string>(pid)); // end fork // return "foobar"; return msg; }
i can't if i'd try removing htmllog calls -- there no way access dom child process, htmllog won't work @ , quite possible trying use in forked process causing go inactive state while tries (unsuccessfully) communicate browser process doesn't know it.
i don't know if can work or not, i'd more bit nervous forking process child process of else; browser owns plugin process , communicates via ipc, if fork process there lot of code don't know still running , trying talk browser through now-defunct ipc connection.
my recommendation launch seperate process, that's me. @ least, absolutely cannot use firebreath provides communicating browser child process.
Comments
Post a Comment