commit | 11f6745c3d563e5ed2669a4cf566ab3107b6e073 | [log] [tgz] |
---|---|---|
author | Nigel Tao <nigeltao@golang.org> | Fri Sep 11 18:48:25 2015 +1000 |
committer | Nigel Tao <nigeltao@golang.org> | Thu Sep 17 03:05:17 2015 +0000 |
tree | 845eda1130c553b0eeedea0d67474d5a00b12556 | |
parent | 7a70f37cf6f284c1e7a21f6dec45688bd8662ae8 [diff] |
app: process input and other events concurrently, not consecutively. Previously, we did: for { processEvents() // Process any pending Android input events. select { // Select Go events (channel send/receives). etc } } The problem was that if you were blocked on the select because there were no incoming Go events, then you weren't reading new input events, and the UI could block indefinitely. After this CL, input events are processed in a dedicated goroutine, where it's fine for for C.AInputQueue_getEvent(q, &e) >= 0 { etc } to block, and the main loop deals only with Go channels: for { select { etc } } Change-Id: I8ec27a40e220b1d95a6b6fc14347a59833ccfdc8 Reviewed-on: https://go-review.googlesource.com/14500 Reviewed-by: David Crawshaw <crawshaw@golang.org>
The Go mobile repository holds packages and build tools for using Go on mobile platforms.
Package documentation as a starting point:
The Go Mobile project is experimental. Use this at your own risk. While we are working hard to improve it, neither Google nor the Go team can provide end-user support.
This is early work and installing the build system requires Go 1.5. Follow the instructions on golang.org/wiki/Mobile to install the gomobile command, build the basic and the bind example apps.
Contributions to Go are appreciated. See https://golang.org/doc/contribute.html.