Hi David. Hi, I have just started the task about http backend for the file system module, and I would want to discuss a issue.
If I understand well, RIA is a request for cache a block which be read later. The task description suggests libcurl to implement it. However, it seems libcurl does not support async downloading. It supports a 'non-blocking' interface, but it is not quite good for this. I have take a look but I do not found a good alternative. So we can implement this using threads explicitly, but it requires some effort for portability. I think it maybe provided by a new module. Any other idea? As I understand there are at least two alternatives to fix this problem: - To provide a new module in the base layer providing system-independent threads. The omnitreads abstraction used in omniORB is such an example (although it is a C++ class) http://omniorb.sourceforge.net/omni40/omnithread.html - To simply use POSIX threads. There is a win32-pthreads implementation (http://[email protected]) but I am not 100% sure if it is compatible with GPLv3+. Bruno was interested in including that library as a gnulib module, and some concerns about licensing appeared. See http://sourceware.org/ml/pthreads-win32/2008/msg00003.html If win32-pthreads is GPLv3+ compatible I would go for the second option, since almost any platform is supporting POSIX threads nowadays, except mingw32. -- Jose E. Marchesi <[email protected]> http://www.jemarch.net GNU Project http://www.gnu.org
