return when interrupted by a signal. Instead, check for EINTR in service_fds
and call krb5int_cm_call_select again.
ticket: 5440
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19457
dc483132-0cff-0310-8789-
dd5450dbe970
e = getcurtime(&now);
if (e)
return e;
-try_again:
if (out->end_time.tv_sec == 0)
timo = 0;
else {
else
dprint(":%F\n", &out->rfds, &out->wfds, &out->xfds, out->max);
- if (*sret < 0) {
- if (e == EINTR)
- goto try_again;
+ if (*sret < 0)
return e;
- }
return 0;
}
int e, selret;
e = 0;
- while (selstate->nfds > 0
- && (e = krb5int_cm_call_select(selstate, seltemp, &selret)) == 0) {
+ while (selstate->nfds > 0) {
int i;
+ e = krb5int_cm_call_select(selstate, seltemp, &selret);
+ if (e == EINTR)
+ continue;
+ if (e != 0)
+ break;
+
dprint("service_fds examining results, selret=%d\n", selret);
if (selret == 0)