Michael Schnell wrote:
On 12/28/2013 10:07 PM, Mark Morgan Lloyd wrote:
Thanks, I'm reading stdin directly with a tight timeout using fpselect
so it sounds like I should be able to manage something.
This of course requests for a multithreaded application. (i.e. the
threads that handle the blocking pipes communicate with the main thread
via "TThread.Queue" or "Application.QueueAsyncCall").
In fact without a GUI binding currently you even can't use TTimer.
Exact,y this is why I am planing to do a "active NoGui" "Widget Type" -
and since not that long I do know how this can be done. :-)
As Michael and Sven state, "TThread.Queue", "Application.QueueAsyncCall"
depend on checksynchronize() (and TTimer needs a dedicated
implementation in a new WidgetType, anyway).
Thanks, yes. In practice there will be limited communication between
backend threads and the frontend console, I think I've managed to
organise things so that there's effectively a single point of contact
and the program will be able to run in text mode (i.e. inside something
like GNU Screen) or with a GUI.
The non-GUI version is a <1Mb binary smartlinked and stripped, which is
credible for publishing. Haven't a clue what the GUI version will come
to yet, since I want to embed symbolic debugging and a simulated logic
analyser which implies pulling in a lot of code.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus