Maybe I'm affected by bad luck, but almost all applications I happen to develop must run under Linux and must deal with data coming at unpredictable times from some external connection. It may be a network connection, a serial device, a special device, but always coming in an unpredictable way.

Possible scenarios are:

1) Freezing the GUI for an undetermined amount of time, waiting for data

2) Loosing the data arriving while the GUI is doing something else.

3) Both sometimes freezing the GUI and sometimes loosing the data.

4) Take advantage of multithreading, have separate threads which monitor and process incoming data, and then neatly synchronize with GUI.

For some obscure reasons, neither I nor my customers find the first three options acceptable, so I usually I'm forced to select the fourth one.

I boldly start a new Application, begin to populate my window with required gadgets, write the thread code, push F9, and my Application crashes. Then I revise my code, looking for all obvious errors, and after a painful search, I discover that I had either forgot to add -dUseCThreads to program options, or , even worse, that I had simply misspelled it.

From the posts I see from time to time in this list, it appears that I'm not the only one to suffer this sort of problem.

Now I know that it's been debated if multithreading should be enabled by default in Unix environment, and the conclusion has been that it should not. I can't say that I found the arguments against multithreading very convincing, but I don't want to reopen a closed discussion.

What I ask is: would it be so hard to provide the choice in the "New" dialog? Something like Single Thread Application and Multi Thread Application? The choice could be either hidden or flash an error for the platforms where multithreading is not supported, would be a no-op for Windows, but would make life easier to the rest of us. I could provide a patch if pointed to the right area of code to deal with. IDE things remain a big mystery to me.

Giuliano


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to