Bug 756036 - Fix race condition between rilworker and IO thread. r=kmachulis

This commit is contained in:
Cervantes Yu 2012-05-19 11:29:45 -04:00
Родитель de44d30876
Коммит e98b64a0d2
1 изменённых файлов: 13 добавлений и 5 удалений

Просмотреть файл

@ -320,11 +320,19 @@ RilClient::OnFileCanWriteWithoutBlocking(int fd)
MOZ_ASSERT(fd == mSocket.get());
while (!mOutgoingQ.empty() || mCurrentRilRawData != NULL) {
if(!mCurrentRilRawData) {
mCurrentRilRawData = mOutgoingQ.front();
mOutgoingQ.pop();
mCurrentWriteOffset = 0;
while (true) {
{
MutexAutoLock lock(mMutex);
if (mOutgoingQ.empty() && !mCurrentRilRawData) {
return;
}
if(!mCurrentRilRawData) {
mCurrentRilRawData = mOutgoingQ.front();
mOutgoingQ.pop();
mCurrentWriteOffset = 0;
}
}
const uint8_t *toWrite;