On 01/13/2012 03:40 AM, Kinkie wrote: >> * Windows support - Amos, Kinkie, Guido ? >> > >> > MinGW compat fixes are stalled by the test machines being down. Kinkie, >> > Guido can you look into that please? >> > CommIO needs shuffling into the DiskIO library. This will resolve one >> > blocker build issue on Windows. >> > SMP IPC support on Windows needs to be designed, built and tested.
> .. or we could try to make use of the dummy code that was developed > for e.g. OpenBSD and simply not support SMP on Windows yet. My understanding is that no new/special dummy code is needed for Squid on Windows in non-SMP mode. Bugs notwithstanding, non-SMP code should work as well as before shared caching and other SMP features were committed. The reason we added fake shared memory segments and such is to enable folks to use Rock store (and possibly other new features) in no-sharing mode. Rock store is always using Ipc::Mem::Segment and can work in non-sharing (and even non-SMP) modes. With the addition of fake segments, Rock store became usable (in non-shared mode) on platforms where there are not POSIX shared memory segments. Here is a summary of "most advanced" configurations for each representative platform, to illustrate the intent (lesser configurations are also supported, of course): Linux: Shared Rock store in SMP mode. OpenBSD: Non-shared Rock store in SMP mode. Windows: Non-shared Rock store in non-SMP mode. because Linux: Has UDS and POSIX shared segments. OpenBSD: Has UDS. Does not have POSIX shared segments. Windows: Does not have UDS and POSIX shared segments. Again, I do not know whether there are some bugs that block some of the above configurations, but the intent was to utilize available features in each environment. Needless to say that if somebody is interested in getting shared caching and/or SMP working on other platforms, they need to implement IPC, shared memory, and atomic primitives for those platforms. No significant high-level code changes should be needed. HTH, Alex.
