diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/gnu/java/nio/natPipeImpl.cc | 2 | ||||
-rw-r--r-- | libjava/include/posix.h | 7 | ||||
-rw-r--r-- | libjava/include/win32.h | 1 | ||||
-rw-r--r-- | libjava/win32.cc | 7 |
5 files changed, 24 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d751c10..03d60bd 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2003-10-17 Mohan Embar <gnustuff@thisiscool.com> + + * win32.cc (_Jv_pipe): Implemented. + * gnu/java/nio/natPipeImpl.cc (nativeInit): Use + _Jv_pipe instead of ::pipe. + * include/posix.h (_Jv_pipe): New inline. + * include/win32.h (_Jv_pipe): New declaration. + 2003-10-17 Ralph Loader <rcl@ihug.co.nz> * java/lang/StringBuffer.java (getChars): Fix array index checks. diff --git a/libjava/gnu/java/nio/natPipeImpl.cc b/libjava/gnu/java/nio/natPipeImpl.cc index 522c24c..caae89c 100644 --- a/libjava/gnu/java/nio/natPipeImpl.cc +++ b/libjava/gnu/java/nio/natPipeImpl.cc @@ -26,7 +26,7 @@ gnu::java::nio::PipeImpl::nativeInit (::java::nio::channels::spi::SelectorProvid { int filedes [2]; - if (::pipe (filedes) < 0) + if (_Jv_pipe (filedes) < 0) throw new ::java::io::IOException (JvNewStringUTF (strerror (errno))); /* FIXME diff --git a/libjava/include/posix.h b/libjava/include/posix.h index 2c6054e..c8cd5e2 100644 --- a/libjava/include/posix.h +++ b/libjava/include/posix.h @@ -178,4 +178,11 @@ _Jv_read(int s, void *buf, int len) #endif /* DISABLE_JAVA_NET */ +// Wraps ::pipe +static inline int +_Jv_pipe (int filedes[2]) +{ + return ::pipe (filedes); +} + #endif /* __JV_POSIX_H__ */ diff --git a/libjava/include/win32.h b/libjava/include/win32.h index 6da0eaf..e169adf 100644 --- a/libjava/include/win32.h +++ b/libjava/include/win32.h @@ -95,6 +95,7 @@ extern void _Jv_platform_initialize (void); extern void _Jv_platform_initProperties (java::util::Properties*); extern jlong _Jv_platform_gettimeofday (); extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *); +extern int _Jv_pipe (int filedes[2]); inline void _Jv_platform_close_on_exec (jint) diff --git a/libjava/win32.cc b/libjava/win32.cc index abe768a..e44b7b2 100644 --- a/libjava/win32.cc +++ b/libjava/win32.cc @@ -12,6 +12,7 @@ details. */ #include <platform.h> #include <sys/timeb.h> #include <stdlib.h> +#include <fcntl.h> #include <java/lang/ArithmeticException.h> #include <java/lang/UnsupportedOperationException.h> @@ -342,3 +343,9 @@ _Jv_select (int n, fd_set *readfds, fd_set *writefds, } return r; } + +int +_Jv_pipe (int filedes[2]) +{ + return _pipe (filedes, 4096, _O_BINARY); +} |