Reviewers: tobyr, Sam, Description: This adds the native code (shared with the plugins) and the Java changes necessary to switch to the Shm+Futex transport.
This is Linux-only, as it requires futexes (fast user-space mutexes), but it could probably be extended to work on any Posix system with Sys5 shared memory and GCC's atomic operations defined, using a combination of spin-wait and sleeping for a microsecond between checks. Alternatively, it could use Sys5 semaphores, but in my testing that was about 7 times slower than futexes. The mechanism for switching transports is pluggable, so we could easily have a transport for Windows that uses named pipes, and one for Posix systems that uses FIFOs. The actual work in the browser plugins to support alternate channels is not done yet and will be committed separately. Please review this at http://gwt-code-reviews.appspot.com/310801/show Affected files: branch-info.txt dev/core/src/com/google/gwt/dev/shell/BrowserChannel.java dev/core/src/com/google/gwt/dev/shell/BrowserChannelClient.java dev/core/src/com/google/gwt/dev/shell/BrowserChannelServer.java dev/core/src/com/google/gwt/dev/shell/DefaultTransport.java dev/core/src/com/google/gwt/dev/shell/ShmFutexTransport.java dev/core/src/com/google/gwt/dev/shell/ShmFutexTransportFactory.java dev/core/src/com/google/gwt/dev/shell/ShmFutexTransportTestServer.java dev/core/src/com/google/gwt/dev/shell/SocketTransport.java dev/core/src/com/google/gwt/dev/shell/Transport.java dev/core/src/com/google/gwt/dev/shell/TransportFactory.java dev/core/src/com/google/gwt/util/tools/NativeLoader.java dev/core/test/com/google/gwt/dev/shell/BrowserChannelServerTest.java dev/core/test/com/google/gwt/dev/shell/ShmFutexTransportTest.java dev/core/test/com/google/gwt/dev/shell/TestBrowserChannel.java distro-source/build.xml eclipse/dev/.classpath eclipse/jni/linux/.project eclipse/lang/.project eclipse/plugins/MissingPlugin/.classpath eclipse/plugins/MissingPlugin/.project eclipse/samples/Hello/Hello-gwtc.launch eclipse/samples/Hello/Hello.launch eclipse/samples/Mail/Mail-gwtc.launch eclipse/samples/Mail/Mail.launch eclipse/samples/Showcase/.classpath eclipse/samples/Showcase/.project eclipse/samples/Showcase/Showcase-gwtc.launch eclipse/servlet/.project eclipse/user/.classpath jni/build.xml jni/linux/ExternalWrapper.cpp jni/linux/ExternalWrapper.h jni/linux/JStringWrap.h jni/linux/JsRootedValue.cpp jni/linux/JsRootedValue.h jni/linux/JsStringWrap.h jni/linux/JsValueMoz.cpp jni/linux/LowLevelMoz.cpp jni/linux/Makefile jni/linux/NativeWrapper.cpp jni/linux/ShmFutexTransport.cpp jni/linux/Tracer.cpp jni/linux/Tracer.h jni/linux/build.xml jni/linux/gwt-jni.h jni/linux/mozilla-headers.h jni/linux/prebuilt/libShmFutex_Linux_x86.so jni/linux/prebuilt/libShmFutex_Linux_x86_64.so jni/linux/prebuilt/libgwt-ll.so plugins/common/.cproject plugins/npapi/Makefile plugins/npapi/manifest-template.json plugins/npapi/prebuilt/gwt-dev-plugin/manifest.json plugins/platform/Linux/Futex.cpp plugins/platform/Linux/Futex.h plugins/platform/Linux/Makefile plugins/platform/Linux/ShmBuffer.h plugins/platform/Linux/ShmFutex.cpp plugins/platform/Linux/ShmFutex.h plugins/platform/Linux/dumpshm.cpp plugins/platform/Linux/futextest.cpp plugins/webkit/Core/WebScriptSessionHandler.cpp plugins/xpcom/.cproject -- http://groups.google.com/group/Google-Web-Toolkit-Contributors To unsubscribe, reply using "remove me" as the subject.
