genode/os/src/server/terminal_crosslink
Alexander Boettcher c2d3543e62 base: replace obj_by_* by lookup_and_lock
Add functionality to lookup an object and lock it. Additional the case is
handled that a object may be already in-destruction and the lookup will deny
returning the object.

The object_pool generalize the lookup and lock functionality of the rpc_server
and serve as base for following up patches to fix dangling pointer issues.
2013-01-10 11:13:13 +01:00
..
main.cc Cross-link terminal 2012-06-20 10:19:19 +02:00
README README file for 'terminal_crosslink' 2012-07-02 14:14:00 +02:00
target.mk Cross-link terminal 2012-06-20 10:19:19 +02:00
terminal_root.h Cross-link terminal 2012-06-20 10:19:19 +02:00
terminal_session_component.cc base: replace obj_by_* by lookup_and_lock 2013-01-10 11:13:13 +01:00
terminal_session_component.h Cross-link terminal 2012-06-20 10:19:19 +02:00

The 'terminal_crosslink' server allows exactly two clients to communicate with
each other using the 'Terminal' interface. Data sent to the server gets stored
in a buffer of 4096 bytes (one buffer per client). As long as the data to be
written fits into the buffer, the 'write()' call returns immediately. If no
more data fits into the buffer, the 'write()' call blocks until the other
client has consumed some of the data from the buffer via the 'read()' call. The
'read()' call never blocks. A signal receiver can be used to block until new
data is ready for reading.

Example
-------

An example run script 'terminal_crosslink.run' can be found in the 'os/run'
directory.