added a timeout for sending messages down to the client, it keeps app_server from hanging, though of course it doesn't fix the real problem, I have not had time to investigate the messaging, but this work around shows that the hang ups that I was seeing indeed happen in the messaging code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12557 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2209,19 +2209,21 @@ ServerWindow::_CopyBits(RootLayer* rootLayer, Layer* layer,
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void ServerWindow::SendMessageToClient(const BMessage* msg, int32 target, bool usePreferred) const
|
void ServerWindow::SendMessageToClient(const BMessage* msg, int32 target, bool usePreferred) const
|
||||||
{
|
{
|
||||||
ssize_t size;
|
ssize_t size = msg->FlattenedSize();
|
||||||
char *buffer;
|
char* buffer = new char[size];
|
||||||
|
|
||||||
size = msg->FlattenedSize();
|
if (msg->Flatten(buffer, size) == B_OK) {
|
||||||
buffer = new char[size];
|
// BMessage::Private::SendFlattenedMessage(buffer, size,
|
||||||
|
// fClientLooperPort, target, usePreferred, B_INFINITE_TIMEOUT);
|
||||||
|
status_t ret = BMessage::Private::SendFlattenedMessage(buffer, size,
|
||||||
|
fClientLooperPort, target, usePreferred, 100000);
|
||||||
|
if (ret < B_OK)
|
||||||
|
fprintf(stderr, "ServerWindow::SendMessageToClient(): %s\n", strerror(ret));
|
||||||
|
|
||||||
if (msg->Flatten(buffer, size) == B_OK)
|
} else
|
||||||
BMessage::Private::SendFlattenedMessage(buffer, size,
|
|
||||||
fClientLooperPort, target, usePreferred, B_INFINITE_TIMEOUT);
|
|
||||||
else
|
|
||||||
printf("PANIC: ServerWindow %s: can't flatten message in 'SendMessageToClient()'\n", fName);
|
printf("PANIC: ServerWindow %s: can't flatten message in 'SendMessageToClient()'\n", fName);
|
||||||
|
|
||||||
delete [] buffer;
|
delete[] buffer;
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user