Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi, I have created a pull request fixing #4. I testes it in go v1.7.1.
Since Go v1.6 Go code may pass a Go pointer to C provided that the Go
memory to which it points does not contain any Go pointers. I create a
synchronized map which stores all the go-objects we need to be able to
retrive. registerCallback is used to register a new object and return
its' index, lookupCallback returns the object by its' index,
unregisterCallback unregisters an object from the map
(callbackFunctions). Now instead of passing pointers to struct with a
pointer, we pass a pointer to int which identifies the apropriate
structure. Type assertion is used to convert interface{} to an actual
object. We do this in order to have unified code for passing objective
function callbacks and log function callbacks.