java_objectheader *exceptionptr;
void *dummy;
-
/********** interne (nur fuer main relevante Optionen) **************/
char logfilename[200] = "";
#endif
+ atexit(clear_thread_flags);
+
/************ Infos aus der Environment lesen ************************/
cp = getenv ("CLASSPATH");
java_objectheader *exceptionptr;
void *dummy;
-
/********** interne (nur fuer main relevante Optionen) **************/
char logfilename[200] = "";
#endif
+ atexit(clear_thread_flags);
+
/************ Infos aus der Environment lesen ************************/
cp = getenv ("CLASSPATH");
return (fd);
}
+void clear_thread_flags(void)
+{
+#if !defined(BLOCKING_CALLS)
+ int fl, fd;
+
+#if defined(HAVE_FCNTL) && defined(O_NONBLOCK)
+ fd = fileno(stdin);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+
+ fd = fileno(stdout);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+
+ fd = fileno(stderr);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+#elif defined(HAVE_IOCTL) && defined(FIONBIO)
+ fl = 0;
+ fd = fileno(stdin);
+ (void) ioctl(fd, FIONBIO, &fl);
+
+ fd = fileno(stdout);
+ (void) ioctl(fd, FIONBIO, &fl);
+
+ fd = fileno(stderr);
+ (void) ioctl(fd, FIONBIO, &fl);
+#endif
+
+#endif
+}
+
+
/*
* Threaded create socket.
*/
} thread;
void initThreads(u1 *stackbottom);
+void clear_thread_flags(void);
void startThread(thread*);
void resumeThread(thread*);
void iresumeThread(thread*);
} thread;
void initThreads(u1 *stackbottom);
+void clear_thread_flags(void);
void startThread(thread*);
void resumeThread(thread*);
void iresumeThread(thread*);
return (fd);
}
+void clear_thread_flags(void)
+{
+#if !defined(BLOCKING_CALLS)
+ int fl, fd;
+
+#if defined(HAVE_FCNTL) && defined(O_NONBLOCK)
+ fd = fileno(stdin);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+
+ fd = fileno(stdout);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+
+ fd = fileno(stderr);
+ fl = fcntl(fd, F_GETFL, 0);
+ fl = fcntl(fd, F_SETFL, fl & (~O_NONBLOCK));
+#elif defined(HAVE_IOCTL) && defined(FIONBIO)
+ fl = 0;
+ fd = fileno(stdin);
+ (void) ioctl(fd, FIONBIO, &fl);
+
+ fd = fileno(stdout);
+ (void) ioctl(fd, FIONBIO, &fl);
+
+ fd = fileno(stderr);
+ (void) ioctl(fd, FIONBIO, &fl);
+#endif
+
+#endif
+}
+
+
/*
* Threaded create socket.
*/