const struct afb_auth *auth,
uint32_t session)
{
struct afb_api_dyn_verb *v, **vv;
const struct afb_auth *auth,
uint32_t session)
{
struct afb_api_dyn_verb *v, **vv;
static void call_cb(void *closure, struct afb_xreq *xreq)
{
struct afb_api_dyn *dynapi = closure;
static void call_cb(void *closure, struct afb_xreq *xreq)
{
struct afb_api_dyn *dynapi = closure;
xreq->request.dynapi = (void*)dynapi->export; /* hack: this avoids to export afb_export structure */
/* look first in dyna mic verbs */
verbs = dynapi->verbs;
i = dynapi->count;
while (i) {
xreq->request.dynapi = (void*)dynapi->export; /* hack: this avoids to export afb_export structure */
/* look first in dyna mic verbs */
verbs = dynapi->verbs;
i = dynapi->count;
while (i) {
-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),