[fpc-pascal] FCGI MultiThreaded

Michael Schnell mschnell at lumino.de
Mon May 5 10:36:23 CEST 2014


On 05/02/2014 02:30 PM, Michael Van Canneyt wrote:
> I don't think these mails qualify as research.
I am sorry for potentially having used inappropriate wording.
I got lots of very useful information from answers in these extremely 
helpful lists, that indeed led to me thinking to being finally able to 
do such an implementation (given enough spare time).

>
> MseGUI has a event-loop application type that runs without gui.
The event loop issue has long been solved for me. I.e. since the 
implementation of TThread.Queue (that in fact has been triggered by one 
of my posts on that behalf) is in place (within the fpc rtl).

TThread.Queue finally clearly shows that - for allowing decent 
Event-oriented programming - implementing an event queue (or in fact 
using the one existing in the rtl)  without the LCL (or msegui) is 
viable - and seemingly in fact rather easy. I now know that I could do 
such a thingy (including a draft of a TTimer implementation) with not 
too much effort (given a little bit of  spare time).

Here the lacking documentation and the (for me) misleading name of 
"CheckSynchronize" (that in fact is the event queue managing call, 
handling as well TThread.Synchronize and TThread.Queue) prevented me 
from realizing that the fpc rtl already does provide an event queue 
implementation. Here silly me seemingly did misunderstand some helpful 
hints, I got in the forums a long time ago (while many other hints were 
in fact misleading as, like myself, the posters did not know about the 
existence of the Event queue in the rtl and recommended to create my own 
queue in the LCL - which I found close to impossible for "newcomers" to 
do in a way decently consistent with the ways the LCL is crafted. (I did 
start such a project but gave up.)

> I doubt it took martin a day to implement it; probably even less than 
> half a day.
Some years ago, I did take a deep look at the code in msegui that 
implements the event queue (independent form the queue in the fpc rtl). 
Martin would have needed to type all that day without thinking a second 
for inputting the source files. He es excellent, but not that almighty 
:-) .

But anyway, during the said research I found that doing another 
implementation of an event queue is not necessary, the one in the rtl 
should be just fine. So this seems very doable. and this is why I in 
this thread  recommended to take a look at this.

Thanks to the maintainers of fpc and all other list members for much 
insight I got during these years !

-Michael



More information about the fpc-pascal mailing list