system: netd: prevent infinite loop

There is a corner case where rescan() runs between
allocateServiceRef and startMonitoring.  After
allocateServiceRef is called the node at mHead
has mReady = 0.  Then when rescan runs, it loops forver
waiting for mReady != 0, but startMonitoring can't
run because rescan has the lock.

To prevent this, allow rescan to continue to the
next node if mReady == 0.

Change-Id: I7538e00087c02cd6b5553c992bd3c14e1a867a99
1 file changed