You build them all into the synthetic files server, but only activate the
needed ones as commanded through a control channel or file. In such
case, you can define the communication mechanism and may do better
than with loadable modules, where you can never be certain that they'll
be available.
++L
In a real-time environment, it's easiest to think of all overheads as
being bad, even though often they don't have any noticeable impact.
++L
it's usually error prone, for instance there's no type checking,
and dangerous: the main application crashes each time a plug-in blows a fuse,
because dynamically loaded things are simply read in to the same protection domain.
in your particular applications, on modern hardware, i shouldn't think
have trouble with the overhead of connecting separate processes,
especially the instant messenger one, but with care in design the
mediaplayer should work too. after all, in both cases you can't
send faster than the network, and in the latter you can't display
faster than humans can see it, so there's quite a bit of slack.
the main problem in the latter is maintaining a steady flow
(the EDF scheduling might help you there).
having said that, plan 9's loader has got support for creating dynamically loaded things,
with type checking. there's a supporting library that provides a reasonable
interface to it, but that's not part of the distribution.
if there's not already a copy somewhere i'll dig it out again.
--
Federico G. Benavento
that's single-core think. today splitting things up into multiple
processes is a good way to reduce latency or increase speed.
- erik
>On a system that supports dynamic linking this is trivial.it's usually error prone, for instance there's no type checking,
and dangerous: the main application crashes each time a plug-in blows a fuse,
because dynamically loaded things are simply read in to the same protection domain.
in your particular applications, on modern hardware, i shouldn't think
have trouble with the overhead of connecting separate processes,
especially the instant messenger one, but with care in design the
mediaplayer should work too. after all, in both cases you can't
send faster than the network, and in the latter you can't display
faster than humans can see it, so there's quite a bit of slack.
the main problem in the latter is maintaining a steady flow
(the EDF scheduling might help you there).
having said that, plan 9's loader has got support for creating dynamically loaded things,
with type checking. there's a supporting library that provides a reasonable
interface to it, but that's not part of the distribution.
if there's not already a copy somewhere i'll dig it out again.
so the UI doesn't hang because webkit is single threaded, so you just
fork()/exec() a binary
and communicate via a named pipe?
in any case, like chrome, which uses some sort of shared bitmap for a
media player
the player could create and image and share it via nameimage(), then the decoder
program would just call namedimage() to get that one and draw to it...
hell it could draw directly to the display with image id 0 if you want
it, so really
for the im client a pipe is more than enough
--
Federico G. Benavento
The other, older library is dynld. The "official" release is available
somewhere and mirrored here: http://gsoc.cat-v.org/people/nwf/dynld.tgz .
Ages and ages ago I wrote a small extension to its API, resulting in
http://gsoc.cat-v.org/people/nwf/dynld-nwf.tgz . Some (old-QEMU-internals
inspired) commentary can be found in http://gsoc.cat-v.org/people/nwf/dynld .
--nwf;
for the im client a pipe is more than enough
--
Federico G. Benavento