home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / kaffe-0.5p4-src.tgz / tar.out / contrib / kaffe / lib / native / java.lang / Thread.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  2KB  |  101 lines

  1. /*
  2.  * java.lang.Thread.c
  3.  *
  4.  * Copyright (c) 1996 Systems Architecture Research Centre,
  5.  *           City University, London, UK.
  6.  *
  7.  * See the file "license.terms" for information on usage and redistribution
  8.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  9.  *
  10.  * Written by Tim Wilkinson <tim@sarc.city.ac.uk>, February 1996.
  11.  */
  12.  
  13. #define __jtypes_h
  14. #include "../../kaffevm/gtypes.h"
  15. #include <native.h>
  16. #include "java.lang.stubs/Thread.h"
  17. #include "../../kaffevm/thread.h"
  18.  
  19. IMPORT(thread*) currentThread;
  20.  
  21. struct Hjava_lang_Thread*
  22. java_lang_Thread_currentThread(struct Hjava_lang_Thread* none)
  23. {
  24.     return ((struct Hjava_lang_Thread*)currentThread);
  25. }
  26.  
  27. /*
  28.  * Yield processor to another thread of the same priority.
  29.  */
  30. void
  31. java_lang_Thread_yield(struct Hjava_lang_Thread* none)
  32. {
  33.     yieldThread();
  34. }
  35.  
  36. /*
  37.  * Put current thread to sleep for a time.
  38.  */
  39. void
  40. java_lang_Thread_sleep(struct Hjava_lang_Thread* none, jlong time)
  41. {
  42.     sleepThread(time);
  43. }
  44.  
  45. /*
  46.  * Start this thread running.
  47.  */
  48. void
  49. java_lang_Thread_start(struct Hjava_lang_Thread* this)
  50. {
  51.     startThread((thread*)this);
  52. }
  53.  
  54. /*
  55.  * Is this thread alive?
  56.  */
  57. jint /* bool */
  58. java_lang_Thread_isAlive(struct Hjava_lang_Thread* this)
  59. {
  60.     return (aliveThread((thread*)this));
  61. }
  62.  
  63. /*
  64.  * Number of stack.  One for the moment.
  65.  */
  66. jint
  67. java_lang_Thread_countStackFrames(struct Hjava_lang_Thread* this)
  68. {
  69.     return (framesThread((thread*)this));
  70. }
  71.  
  72. /*
  73.  * Change thread priority.
  74.  */
  75. void
  76. java_lang_Thread_setPriority0(struct Hjava_lang_Thread* this, jint prio)
  77. {
  78.     setPriorityThread((thread*)this, prio);
  79. }
  80.  
  81. /*
  82.  * Stop a thread in its tracks.
  83.  */
  84. void
  85. java_lang_Thread_stop0(struct Hjava_lang_Thread* this, struct Hjava_lang_Object* obj)
  86. {
  87.     killThread((thread*)this);
  88. }
  89.  
  90. void
  91. java_lang_Thread_suspend0(struct Hjava_lang_Thread* this)
  92. {
  93.     suspendThread((thread*)this);
  94. }
  95.  
  96. void
  97. java_lang_Thread_resume0(struct Hjava_lang_Thread* this)
  98. {
  99.     resumeThread((thread*)this);
  100. }
  101.