Dear Massimo,
Στις 14/2/2014 19:15, ο/η Massimo Manghi έγραψε:
I wish to take up the opportunity of GSoC for submitting a project. I
can work as tutor for it
mod_rivet can only work with non-threaded MPM (Multi-Processing
Module). An attempt to create a threaded module had been made by
George Petasis in 2012. George was able to rebuild mod_rivet using
CMake on Windows and for what I know he had some initial success, but
I haven't heard any news from him since then.
Yes, sorry for that. What I did was:
Added a CMake makefile for rivet. This allowed to build rivet under many
platforms, including windows. I have tested with
WIndows version of Apache 2.0.
Then I tried to "refactor" the code, in order to understand it. So, I
have re-organised the functions into new files. I remeber having created
an svn repository for that. However, after so much time, this will be
probably obsolete.
Then I explored the possibility of adding a pool of tcl threads, where
the apache threads will post jobs. What I realised was that at that
time, it was not that easy to deal with threads at the C level. There is
the thread extension, that has already done almost all of the work, but
this does not export an API, thus it cannot be re-used. I got the
impression that we have to re-implement everything also in rivet, which
meant that we had to keep track of the thread package development and
evolution.
So, I decided that it was bad timing to do this, and I silently drop it...
Regards,
George
The project will be aimed at attain a prototype module supporting both
threaded and non threaded MPMs. For example when running with the
prefork MPM I wish mod_rivet to preserve the feature of fast cloning
running Tcl interpreters. On the other hand with a threaded MPM the
module should be able to start a thread pool and control it (as a
reference implementation I'm thinking of mod_perl, as George suggested
back in 2012)
Therefore by design the new module should be able to understand what
is the running MPM and fit into its architecture. This requirement is
also needed because, starting with Apache 2.4, the MPM is chosen at
run-time
I envision a solution where MPM dependent code is stored in different
files building different binary libraries sharing the same API and
binary interface. They will be dlopened (using the Unix terminology)
at run time during module initialization so that their functions can
be transparently called by a new mod_rivet core module (much like
Apache HTTP server core calls its modules). The goals of the project
would be met if the developer can achieve a working module capable of
running basic Tcl scripts with both families of MPMs. On this
prototype we can develop the future of Rivet
The degree of difficulty is probably to be ranked as easy for a
student who is already familiar with threads.
Last but not least: having a GSoC student would be an opportunity to
get new people involved in Apache/Tcl.
-- Massimo
---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org