do not use panic/recover to deal with errors in invokeGoFunc