mturk 2005/04/18 08:24:01 Modified: jni/examples/org/apache/tomcat/jni Echo.java jni/java/org/apache/tomcat/jni Poll.java jni/native/src poll.c Log: Remove obsolete Poll.socket, Poll.events and Poll.data calls. Now Api uses indexed array for Poll.poll to minimize the JNI calls. Revision Changes Path 1.9 +6 -5 jakarta-tomcat-connectors/jni/examples/org/apache/tomcat/jni/Echo.java Index: Echo.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/examples/org/apache/tomcat/jni/Echo.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Echo.java 18 Apr 2005 14:06:42 -0000 1.8 +++ Echo.java 18 Apr 2005 15:24:01 -0000 1.9 @@ -180,13 +180,14 @@ Thread.sleep(1); continue; } - long [] desc = new long[16]; + /* Four times size then created pollset */ + long [] desc = new long[64]; /* USe 1 second poll timeout */ int rv = Poll.poll(serverPollset, 1000000, desc); for (int n = 0; n < rv; n++) { - long clientSock = Poll.socket(desc[n]); - int workerId = (int)Poll.data(desc[n]); - System.out.println("Poll flags " + Poll.events(desc[n])); + long clientSock = desc[n*4+1]; + int workerId = (int)desc[n*4+2]; + System.out.println("Poll flags " + desc[n*4]); remove(clientSock, workerId); Worker worker = new Worker(clientSock, workerId, this.getClass().getName()); 1.7 +10 -19 jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Poll.java Index: Poll.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Poll.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Poll.java 15 Apr 2005 10:15:07 -0000 1.6 +++ Poll.java 18 Apr 2005 15:24:01 -0000 1.7 @@ -96,30 +96,21 @@ * @param pollset The pollset to use * @param timeout Timeout in microseconds * @param descriptors Array of signalled descriptors (output parameter) + * The desctiptor array must be four times the size of pollset. + * and are populated as follows: + * <PRE> + * descriptors[n + 0] -> returned events + * descriptors[n + 1] -> socket + * descriptors[n + 2] -> client data + * descriptors[n + 2] -> reserved + * </PRE> * @return Number of signalled descriptors (output parameter) + * or negative APR error code. */ public static native int poll(long pollset, long timeout, long [] descriptors); /** - * Return socket from poll descriptor - * @param polldesc The pollset decriptor to use - */ - public static native long socket(long polldesc); - - /** - * Return client data from poll descriptor - * @param polldesc The pollset decriptor to use - */ - public static native long data(long polldesc); - - /** - * Return rtnevents from poll descriptor - * @param polldesc The pollset decriptor to use - */ - public static native int events(long polldesc); - - /** * Set the socket time to live. * @param pollset The pollset to use * @param ttl Timeout in microseconds 1.8 +0 -24 jakarta-tomcat-connectors/jni/native/src/poll.c Index: poll.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/poll.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- poll.c 18 Apr 2005 13:53:33 -0000 1.7 +++ poll.c 18 Apr 2005 15:24:01 -0000 1.8 @@ -251,30 +251,6 @@ return (jint)num; } -TCN_IMPLEMENT_CALL(jlong, Poll, socket)(TCN_STDARGS, jlong pollfd) -{ - apr_pollfd_t *fd = J2P(pollfd, apr_pollfd_t *); - UNREFERENCED_STDARGS; - TCN_ASSERT(pollfd != 0); - return P2J(fd->desc.s); -} - -TCN_IMPLEMENT_CALL(jlong, Poll, data)(TCN_STDARGS, jlong pollfd) -{ - apr_pollfd_t *fd = J2P(pollfd, apr_pollfd_t *); - UNREFERENCED_STDARGS; - TCN_ASSERT(pollfd != 0); - return P2J(fd->client_data); -} - -TCN_IMPLEMENT_CALL(jint, Poll, events)(TCN_STDARGS, jlong pollfd) -{ - apr_pollfd_t *fd = J2P(pollfd, apr_pollfd_t *); - UNREFERENCED_STDARGS; - TCN_ASSERT(pollfd != 0); - return (jint)fd->rtnevents; -} - TCN_IMPLEMENT_CALL(void, Poll, setTtl)(TCN_STDARGS, jlong pollset, jlong ttl) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]