* Fixed some more bugs in the message passing by area

* Reordered some functions
* Area messages can now be unflattened instead of using the private _Reference and a special port code

Passing by area is now mostly working but it's not yet enabled. I will have to conduct performance tests first to see if and starting at what messagesize the overhead is reasonable.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16500 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz
2006-02-23 09:02:03 +00:00
parent 43d0f55b38
commit 6990418519
4 changed files with 235 additions and 262 deletions
+3 -9
View File
@@ -20,8 +20,7 @@
#define MAX_ITEM_PREALLOCATION B_PAGE_SIZE
static const int32 kPortMessageCodeDirect = 'pjpp';
static const int32 kPortMessageCodeByArea = 'pjp2';
static const int32 kPortMessageCode = 'pjpp';
enum {
@@ -31,7 +30,8 @@ enum {
MESSAGE_FLAG_IS_REPLY = 0x0008,
MESSAGE_FLAG_WAS_DELIVERED = 0x0010,
MESSAGE_FLAG_HAS_SPECIFIERS = 0x0020,
MESSAGE_FLAG_WAS_DROPPED = 0x0080
MESSAGE_FLAG_WAS_DROPPED = 0x0080,
MESSAGE_FLAG_PASS_BY_AREA = 0x0100
};
@@ -182,12 +182,6 @@ class BMessage::Private {
return fMessage->_FlattenToArea(header);
}
status_t
Reference(message_header *header)
{
return fMessage->_Reference(header);
}
status_t
SendMessage(port_id port, int32 token, bigtime_t timeout,
bool replyRequired, BMessenger &replyTo) const