Backed out changeset 5314248e45b5 (bug 1046109)

This commit is contained in:
Carsten "Tomcat" Book
2014-07-31 10:14:23 +02:00
parent 8814937a50
commit dfd1d2d2ae
2 changed files with 39 additions and 42 deletions

View File

@@ -8,7 +8,6 @@
#include "nsTArray.h"
#include "nsXULAppAPI.h"
#include <fcntl.h>
#include "mozilla/unused.h"
static const size_t MAX_READ_SIZE = 1 << 16;
@@ -174,6 +173,34 @@ private:
CancelableTask* mDelayedConnectTask;
};
class SocketSendTask : public SocketIOTask<UnixSocketImpl>
{
public:
SocketSendTask(UnixSocketImpl* aImpl,
UnixSocketConsumer* aConsumer,
UnixSocketRawData* aData)
: SocketIOTask<UnixSocketImpl>(aImpl)
, mConsumer(aConsumer)
, mData(aData)
{
MOZ_ASSERT(aConsumer);
MOZ_ASSERT(aData);
}
void Run() MOZ_OVERRIDE
{
MOZ_ASSERT(!NS_IsMainThread());
MOZ_ASSERT(!IsCanceled());
UnixSocketImpl* impl = GetIO();
MOZ_ASSERT(!impl->IsShutdownOnIOThread());
impl->Send(mData);
}
private:
nsRefPtr<UnixSocketConsumer> mConsumer;
UnixSocketRawData* mData;
};
class SocketListenTask : public SocketIOTask<UnixSocketImpl>
{
public:
@@ -511,28 +538,27 @@ UnixSocketConsumer::SendSocketData(UnixSocketRawData* aData)
}
MOZ_ASSERT(!mImpl->IsShutdownOnMainThread());
XRE_GetIOMessageLoop()->PostTask(
FROM_HERE, new SocketIOSendTask<UnixSocketImpl>(mImpl, aData));
XRE_GetIOMessageLoop()->PostTask(FROM_HERE,
new SocketSendTask(mImpl, this, aData));
return true;
}
bool
UnixSocketConsumer::SendSocketData(const nsACString& aStr)
{
MOZ_ASSERT(NS_IsMainThread());
if (!mImpl) {
return false;
}
if (aStr.Length() > MAX_READ_SIZE) {
return false;
}
nsAutoPtr<UnixSocketRawData> data(
new UnixSocketRawData(aStr.BeginReading(), aStr.Length()));
if (!SendSocketData(data)) {
return false;
}
unused << data.forget();
MOZ_ASSERT(!mImpl->IsShutdownOnMainThread());
UnixSocketRawData* d = new UnixSocketRawData(aStr.BeginReading(),
aStr.Length());
XRE_GetIOMessageLoop()->PostTask(FROM_HERE,
new SocketSendTask(mImpl, this, d));
return true;
}