+
+
+
+
+
+static void do_call_async(int signum, void *arg)
+{
+ struct afb_xreq *xreq = arg;
+ const struct api_desc *a;
+
+ if (signum != 0)
+ afb_xreq_fail_f(xreq, "aborted", "signal %s(%d) caught", strsignal(signum), signum);
+ else {
+ /* search the api */
+ a = search(xreq->api);
+ if (!a)
+ afb_xreq_fail_f(xreq, "unknown-api", "api %s not found", xreq->api);
+ else {
+ xreq->context.api_key = a->api.closure;
+ a->api.call(a->api.closure, xreq);
+ }
+ }
+ afb_xreq_unref(xreq);
+}
+