xreq->request.dynapi = (void*)dynapi->export; /* hack: this avoids to export afb_export structure */
/* look first in dyna mic verbs */
xreq->request.dynapi = (void*)dynapi->export; /* hack: this avoids to export afb_export structure */
/* look first in dyna mic verbs */
-int afb_api_dyn_add(struct afb_apiset *apiset, const char *name, const char *info, int (*preinit)(void*, struct afb_dynapi*), void *closure)
+int afb_api_dyn_add(struct afb_apiset *apiset, const char *name, const char *info, int noconcurrency, int (*preinit)(void*, struct afb_dynapi*), void *closure)
/* records the binding */
afb_api.closure = dynapi;
afb_api.itf = &dyn_api_itf;
/* records the binding */
afb_api.closure = dynapi;
afb_api.itf = &dyn_api_itf;
if (afb_apiset_add(apiset, afb_export_apiname(dynapi->export), afb_api) < 0) {
ERROR("dynamic api %s can't be registered to set %s, ABORTING it!",
afb_export_apiname(dynapi->export),
if (afb_apiset_add(apiset, afb_export_apiname(dynapi->export), afb_api) < 0) {
ERROR("dynamic api %s can't be registered to set %s, ABORTING it!",
afb_export_apiname(dynapi->export),