We need to let libnl hold our callback identifier (just a numeric map key),
passed as a C void. cgo expects C void params's to get Go unsafe.Pointer
args, but does a runtime check to see if the value points at another Go
pointer.
By adding a C-side wrapper with a pure numeric signature, we no longer have to
use unsafe.Pointer Go side, so we avoid the runtime check.
We need to let libnl hold our callback identifier (just a numeric map key), passed as a C void. cgo expects C void params's to get Go unsafe.Pointer args, but does a runtime check to see if the value points at another Go pointer.
By adding a C-side wrapper with a pure numeric signature, we no longer have to use unsafe.Pointer Go side, so we avoid the runtime check.