Commit Graph

4 Commits

Author SHA1 Message Date
Vicamo Yang
52523a1146 Backed out changeset f54af6237ce9 (bug 1000040) for causing bug 1035172 2014-07-10 13:29:47 +08:00
John Shih
c7b126329e Bug 1000040 - Part 1: Supports Ethernet in gecko. r=vchang, r=bholley 2014-05-19 15:52:02 +08:00
Vicamo Yang
a13d595ddb Bug 977995 - remove mNetdWorker from SystemWorkerManager. r=khuey, f=vchang
There are multiple defects in NetworkWorker and the related parts
since the C++ rewrite.  1) NetworkService holds a reference to
NetworkWorker and never releases it.  It has to wait until the cycle
collector comes up to resolve their ownership loop and free
NetworkWorker manually.  However 2) nsINetworkWorker::shutdown is
never called, and that leaves everything living till the end,
inclusive of that gNetdConsumer in Netd.cpp.  3) when GC comes to free
NetworkWorker, it calls its parent destructor ~NetConsumer(), which
in turn calls ~RefCounted<NetdConsumer>().  Having a valid
gNetdConsumer in Netd.cpp follows its refCnt is not zero and this
triggers an assertion in ~RefCounted<NetdConsumer>().

So, some obvious treatments here.  A) NetworkService should call
nsINetworkWorker::shutdown upon receiving a shutdown observer event
and release the reference to NetworkWorker.  B) NetworkWorker should
never be double ref-counted.  Move NetdConsumer implementation into a
separated class.
2014-04-11 22:27:55 +08:00
Dimi Lee
842bf052eb Bug 864931 - Rewrite net worker in C++. r=fabrice, r=vchang 2014-01-29 19:38:50 +08:00