+ else {
+ error_handler = &jmpbuf;
+ if (request->config->apiTimeout > 0) {
+ timerset = 1; /* TODO: check statuses */
+ sevp.sigev_notify = SIGEV_THREAD_ID;
+ sevp.sigev_signo = SIGALRM;
+#if defined(sigev_notify_thread_id)
+ sevp.sigev_notify_thread_id = syscall(SYS_gettid);
+#else
+ sevp._sigev_un._tid = syscall(SYS_gettid);
+#endif
+ timer_create(CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid);
+ its.it_interval.tv_sec = 0;
+ its.it_interval.tv_nsec = 0;
+ its.it_value.tv_sec = 15;
+ its.it_value.tv_nsec = 0;
+ timer_settime(timerid, 0, &its, NULL);
+ }