[haiku-appserver] pending patch

  • From: Stephan Assmus <superstippi@xxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Sun, 05 Feb 2006 13:30:25 +0100

Hi all,

the other day I worked a bit on the app_server... I have a pending patch 
that changes the way updates are sent to the client. The problem with the 
current implementation is this: When the client code invalidates multiple 
views or just different parts of one view while the message queue is 
blocked, then the server will send _UPDATE_ for the first invalidation, 
while the remaining invalidations will be combined in the server. So there 
are two update sessions triggered. On R5, only one is triggered (I think). 
To make it work like on R5, several things could be done:
1.) The server is notified by the client that the client is currently 
"busy", ie the server should wait with sending update requests until the 
client has told the server that it is now ready to receive them. :-\
2.) The server sends update requests for all invalidations, they are 
combined in the client when the messages are processed. :-|
3.) The server doesn't put any information in the _UPDATE_ message at all 
and simply tells the client that there would be an update pending for it. 
When the client receives the notification, it asks the server what stuff 
needs updating. The server could have combined new update information in 
the meantime.

I implemented 3.) and it improves drawing speed quite a bit. WonderBrush is 
much more responsive now. The problem is that some drawing defects can be 
observed (small areas not being redrawn sometimes). Until I have more time 
to investigate this bug, should I still commit the patch anyways, since it 
makes redraws quite a bit faster?

Best regards,
-Stephan

Other related posts: