#include "native-stubs.h" unimplemented(m16countStackFramesmT6Thread4lang4java,jint,(PT6Thread4lang4java me)) unimplemented(m13currentThreadmT6Thread4lang4java,PT6Thread4lang4java,(void)) unimplemented(m7isAlivemT6Thread4lang4java,jboolean,(PT6Thread4lang4java me)) unimplemented(m7resume0mT6Thread4lang4java,void,(PT6Thread4lang4java me)) unimplemented(m12setPriority0ImT6Thread4lang4java,void,(PT6Thread4lang4java me, jint p)) unimplemented(m5startmT6Thread4lang4java,void,(PT6Thread4lang4java me)) unimplemented(m8suspend0mT6Thread4lang4java,void,(PT6Thread4lang4java me)) unimplemented(m5stop0PT6Object4lang4javamT6Thread4lang4java,void,(PT6Thread4lang4java me, PT6Object4lang4java p)) #include #include #include #if defined(HAVE_NANOSLEEP) || defined(HAVE_NSLEEP) #include #endif #ifdef HAVE_SCHED_YIELD #include #endif void m5sleepJmT6Thread4lang4java(jlong t) { /* in milliseconds */ #if HAVE_NANOSLEEP struct timespec tm; struct timespec tmremaining; tm.tv_sec = t / 1000; /* in seconds */ tm.tv_nsec = (t % 1000) * 1000000; /* in nanoseconds */ while(nanosleep(&tm, &tmremaining) == -1 && errno == EINTR) tm = tmremaining; #elif HAVE_NSLEEP struct timestruc_t tm; struct timestruc_t tmremaining; tm.tv_sec = t / 1000; /* in seconds */ tm.tv_nsec = (t % 1000) * 1000000; /* in nanoseconds */ while(nsleep(&tm, &tmremaining) == -1 && errno == EINTR) tm = tmremaining; #elif HAVE_USLEEP if (t < 1000) { /* SunOS limit for this function is 1 million usecs */ usleep(t*1000); /* in microsecs */ } else { /* must use larger granularity */ sleep( t / 1000 ); /* in seconds */ usleep((t % 1000)*1000); /* in microsecs */ } #else sleep( t / 1000 ); /* can't give the user exactly what they want - do our best */ #endif } void m5yieldmT6Thread4lang4java() { #if HAVE_SCHED_YIELD sched_yield(); #else sleep(0); #endif }