Are you Paul Morrison, the author of the flow based programming book? Sorry for the question, I am the first time here.
> Reading the posts here I can see that the FBP is mostly being related
> to multi-threading tasks.So is your book directed to multi-threaded
> implementations and implies that the used platform allows
> multi-threading?In my case I started looking for a way to write an
> app where you can edit shader programs in real time using visual
> nodes with connectors.
Flow-based systems requires no multithreading environment or
architecture, if the task does not require it.
I've written a dataflow engine in C++ for automation (with a friend of
mine), it has very weak support for multithreading, but there's no
problem, because the domain requires no multithreading at all. You press
a button or a timer counts down, it goes thru some components, which
decide what should happen, then, finally a lamp turns on. All the things
must be quick, when I press a button, the lamp must be turned on
immediatelly. Maybe it would be /slower/ with multitask, because of the
scheduler overhead. Now components call each other, with compile-time
binded function call, like normal C/C++ functions do.
Some cases multithreading can be advantage. A nice example is Unix pipes
vs MS-DOS pipes: Unix systems runs piped commands parallel, passing data
with the help of special FIFO "files", while MS-DOS runs commands one by
one, collecting one command's output to a tmp file, which will server as
input for the next command. Both works, and there are cases, where
MS-DOS peroforms no worse than Unix, e.g. if there's only a file reader
and a single sort in the chain (the whole file must be read in order to
sort it): cat (or type) names.txt | sort.
--
ern0
dataflow programmer