commit | 60d29bfb46d1487e59f38e7f377e86159b492aa4 | [log] [tgz] |
---|---|---|
author | Elias Naur <elias.naur@gmail.com> | Sat Apr 14 12:55:03 2018 +0200 |
committer | Elias Naur <elias.naur@gmail.com> | Tue Apr 17 15:00:19 2018 +0000 |
tree | e33a65c8dfc34b7ddd1869ff925f16cd1d927a8b | |
parent | e7d878f9d03b616625c8526d39bb4d4053870c37 [diff] |
bind: pin Go objects while incrementing their reference count When passing a refnum across the language barrier there is a small window where a proxy object itself can be garbage collected, its reference count go to 0 and the object be gone when the refnum is dereferenced on the other side. In Go the proxy object is pinned with runtime.KeepAlive. This CL implements the same mechanism in Java by passing the proxy object to native code, ensuring the Java GC can't reclaim it during the call. Change-Id: I23824439012eb00f90d729f59d4846999f24f01f Reviewed-on: https://go-review.googlesource.com/107095 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
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.