[interfacekit] Re: Proposal: Only one thread per application (not window) o=n app_server side without polling

>Hi, please read everything and comment on this.

>Every BWindow currently uses the PortLink class to have a connection
>with the app_server where one thread is reading from the port.
>This is a problem because a large number of BWindows, or offscreen
>bitmaps will create a large number of threads in the app_server,
>which will run out of virtual address space because of this.

[...]
>What do you think?

Interesting idea, but so couldn't we just make things even simpler by 
assigning one thread per application and have all windows from that 
application just communicate with that thread? I would add one additional 
thread per application to perform async bitmap rendering. This way we do even 
reduce other important OS resources such as ports and semaphores.
This solution would have slight worse performance in some cases under SMP 
machines: if 2 windows belonging to the same application need app_server 
work, they must queue their requests to a single thread, whle with the 
current BeOS implementation 2 separate threads would work for them.
Anyway I think that this simpler solution would benefit the whole system 
performance and even make the app_server simpler to write and maintain.

While we are at it, i just read the other posts regarding rendering and I 
have a few ideas to discuss with you:
app side rendering is a nice idea as it would reduce the load on the 
app_server, which in turn would 'just' have to coordinate shared resources. 
Clearly hardware acceleration must be available on the app side.
A second step would involve rendering windows off screen: this solution would 
allow nicer screen updates (ala Dano) and would make later support of OpenGL 
for screen compositing almost immediate. Clearly we need to allocate gfx ram 
space for these window bitmaps to take advantage of all hardware features.

What do you think about it?
-- 

Massimiliano Origgi
    http://www.intuiware.com    mailto:max@xxxxxxxxxxxxx
        Squeezer 2.2 NOW available! 
                WorkspaceSwitcher 2.2 available!


Other related posts: