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.

Reply via email to