+ if (sec < 0)
+ timeout = NULL;
+ else {
+ ret = gettimeofday(&tv, NULL);
+ if (ret != 0)
+ return ret;
+ tv.tv_sec = tv.tv_sec + sec + (tv.tv_usec + usec) / 1000000;
+ tv.tv_usec = (tv.tv_usec + usec) % 1000000;
+ timeout = &tv;
+ }
+
+ block_deferrable_signals(0, &oldset);