/* hmmm, we got a write select on the fd and then failed to write.
Why doesn't that mean that the fd is dead? It doesn't on some
systems it seems (eg. IRIX) */
+ u_sleep(1000);
#if 0
fprintf(FERROR,"write exception\n");
exit_cleanup(1);
if (lseek(map->fd,offset,SEEK_SET) != offset ||
(nread=read(map->fd,map->p,len)) != len) {
- fprintf(FERROR,"EOF in map_ptr! (offset=%d len=%d nread=%d errno=%d)\n",
- (int)offset, len, nread, errno);
- exit_cleanup(1);
+ fprintf(FERROR,"EOF in map_ptr! (offset=%d len=%d nread=%d errno=%d)\n",
+ (int)offset, len, nread, errno);
+ exit_cleanup(1);
}
map->p_offset = offset;
return 0;
}
+
+/* sleep for a while via select */
+void u_sleep(int usec)
+{
+ struct timeval tv;
+
+ tv.tv_sec = 0;
+ tv.tv_usec = usec;
+ select(0, NULL, NULL, NULL, &tv);
+}