Author: nextgens
Date: 2008-02-15 02:55:13 +0000 (Fri, 15 Feb 2008)
New Revision: 17904

Added:
   trunk/contrib/NativeThread/
   trunk/contrib/NativeThread/Makefile
   trunk/contrib/NativeThread/NativeThread.c
   trunk/contrib/NativeThread/lib/
   trunk/contrib/NativeThread/lib/freenet/
   trunk/contrib/NativeThread/lib/freenet/support/
   trunk/contrib/NativeThread/lib/freenet/support/io/
Modified:
   trunk/contrib/freenet_ext/build.xml
Log:
freenet-ext: integration of NativeThread into the build-process, see 
http://archives.freenetproject.org/thread/20080214.235159.6deed539.en.html

Added: trunk/contrib/NativeThread/Makefile
===================================================================
--- trunk/contrib/NativeThread/Makefile                         (rev 0)
+++ trunk/contrib/NativeThread/Makefile 2008-02-15 02:55:13 UTC (rev 17904)
@@ -0,0 +1,23 @@
+CC = gcc
+INC = /path/to/java/include
+CFLAGS = -Wall -O3
+LDFLAGS = -shared -Wl,-soname,libnative.so -I$(INC) -I$(INC)/linux
+LIBS=-static -lc
+FREEENETDIR=/home/nextgens/repo/freenet/
+
+all: libNativeThread.so
+
+NativeThread.java:
+       ln -s $(FREEENETDIR)/src/freenet/support/io/NativeThread.java
+
+NativeThread.class: NativeThread.java
+       javac NativeThread.java
+
+libNativeThread.so: NativeThread.c NativeThread.h
+       $(CC) $(CFLAGS) -o libNativeThread.so $(LDFLAGS) NativeThread.c $(LIBS)
+
+NativeThread.h: NativeThread.class
+       javah NativeThread
+
+clean:
+       -rm -f *.class NativeThread.h libNativeThread*.so NativeThread.java

Added: trunk/contrib/NativeThread/NativeThread.c
===================================================================
--- trunk/contrib/NativeThread/NativeThread.c                           (rev 0)
+++ trunk/contrib/NativeThread/NativeThread.c   2008-02-15 02:55:13 UTC (rev 
17904)
@@ -0,0 +1,23 @@
+#include<sys/resource.h>
+#include<sys/time.h>
+#include<stdio.h>
+#include <errno.h>
+
+#include"NativeThread.h"
+
+JNIEXPORT jint JNICALL Java_sandbox_NativeThread_getLinuxPriority
+  (JNIEnv * env, jobject jobj) {
+       return getpriority(PRIO_PROCESS, 0);
+}
+
+JNIEXPORT jboolean JNICALL Java_sandbox_NativeThread_setLinuxPriority
+(JNIEnv * env, jobject jobj, jint prio) {
+       int ret;
+       errno = 0;
+       ret = setpriority(PRIO_PROCESS, 0, prio);
+       if (ret == -1 && errno != 0) {
+               printf("Setting the thread priority failed!! %d 
%d\n",ret,errno);
+               return JNI_FALSE;
+       }
+       return JNI_TRUE;
+}

Modified: trunk/contrib/freenet_ext/build.xml
===================================================================
--- trunk/contrib/freenet_ext/build.xml 2008-02-14 19:40:08 UTC (rev 17903)
+++ trunk/contrib/freenet_ext/build.xml 2008-02-15 02:55:13 UTC (rev 17904)
@@ -53,6 +53,12 @@
                        <fileset dir="../NativeBigInteger/lib" 
includes="net/**" />
                </copy>
        </target>
+
+       <target name="nativethread" depends="init">
+               <copy todir="${build}">
+                       <fileset dir="../NativeThread/lib" 
includes="freenet/**" />
+               </copy>
+       </target>

        <target name="bdb" depends="init" description="Build the BDB provider">
                <ant antfile="build.xml" dir="../bdb/"/>
@@ -78,7 +84,7 @@
                <delete file="${jar.location}"/>
        </target>

-       <target name="jar" depends="clean,fec,jcpuid,bigint,bdb,wrapper" 
description="Create the jar file">
+       <target name="jar" 
depends="clean,fec,jcpuid,nativethread,bigint,bdb,wrapper" description="Create 
the jar file">
                <jar jarfile="${jar.location}" basedir="${build}" includes="**">
                        <zipfileset src="../fec/common/lib/onion-common.jar"/>
                        <zipfileset src="../bdb/lib/je.jar"/>


Reply via email to