AbstractQueuedSynchronizer.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
  2. #ifndef __java_util_concurrent_locks_AbstractQueuedSynchronizer__
  3. #define __java_util_concurrent_locks_AbstractQueuedSynchronizer__
  4. #pragma interface
  5. #include <java/util/concurrent/locks/AbstractOwnableSynchronizer.h>
  6. extern "Java"
  7. {
  8. namespace sun
  9. {
  10. namespace misc
  11. {
  12. class Unsafe;
  13. }
  14. }
  15. }
  16. class java::util::concurrent::locks::AbstractQueuedSynchronizer : public ::java::util::concurrent::locks::AbstractOwnableSynchronizer
  17. {
  18. public: // actually protected
  19. AbstractQueuedSynchronizer();
  20. virtual jint getState();
  21. virtual void setState(jint);
  22. virtual jboolean compareAndSetState(jint, jint);
  23. private:
  24. ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * enq(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  25. ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * addWaiter(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  26. void setHead(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  27. void unparkSuccessor(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  28. void setHeadAndPropagate(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint);
  29. void cancelAcquire(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  30. static jboolean shouldParkAfterFailedAcquire(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  31. static void selfInterrupt();
  32. jboolean parkAndCheckInterrupt();
  33. public: // actually package-private
  34. virtual jboolean acquireQueued(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint);
  35. private:
  36. void doAcquireInterruptibly(jint);
  37. jboolean doAcquireNanos(jint, jlong);
  38. void doAcquireShared(jint);
  39. void doAcquireSharedInterruptibly(jint);
  40. jboolean doAcquireSharedNanos(jint, jlong);
  41. public: // actually protected
  42. virtual jboolean tryAcquire(jint);
  43. virtual jboolean tryRelease(jint);
  44. virtual jint tryAcquireShared(jint);
  45. virtual jboolean tryReleaseShared(jint);
  46. virtual jboolean isHeldExclusively();
  47. public:
  48. virtual void acquire(jint);
  49. virtual void acquireInterruptibly(jint);
  50. virtual jboolean tryAcquireNanos(jint, jlong);
  51. virtual jboolean release(jint);
  52. virtual void acquireShared(jint);
  53. virtual void acquireSharedInterruptibly(jint);
  54. virtual jboolean tryAcquireSharedNanos(jint, jlong);
  55. virtual jboolean releaseShared(jint);
  56. virtual jboolean hasQueuedThreads();
  57. virtual jboolean hasContended();
  58. virtual ::java::lang::Thread * getFirstQueuedThread();
  59. private:
  60. ::java::lang::Thread * fullGetFirstQueuedThread();
  61. public:
  62. virtual jboolean isQueued(::java::lang::Thread *);
  63. public: // actually package-private
  64. virtual jboolean apparentlyFirstQueuedIsExclusive();
  65. virtual jboolean isFirst(::java::lang::Thread *);
  66. virtual jboolean fullIsFirst(::java::lang::Thread *);
  67. public:
  68. virtual jint getQueueLength();
  69. virtual ::java::util::Collection * getQueuedThreads();
  70. virtual ::java::util::Collection * getExclusiveQueuedThreads();
  71. virtual ::java::util::Collection * getSharedQueuedThreads();
  72. virtual ::java::lang::String * toString();
  73. public: // actually package-private
  74. virtual jboolean isOnSyncQueue(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  75. private:
  76. jboolean findNodeFromTail(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  77. public: // actually package-private
  78. virtual jboolean transferForSignal(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  79. virtual jboolean transferAfterCancelledWait(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  80. virtual jint fullyRelease(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  81. public:
  82. virtual jboolean owns(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
  83. virtual jboolean hasWaiters(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
  84. virtual jint getWaitQueueLength(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
  85. virtual ::java::util::Collection * getWaitingThreads(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
  86. private:
  87. jboolean compareAndSetHead(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  88. jboolean compareAndSetTail(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
  89. static jboolean compareAndSetWaitStatus(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint, jint);
  90. public: // actually package-private
  91. static void access$0();
  92. private:
  93. static const jlong serialVersionUID = 7373984972572414691LL;
  94. ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractOwnableSynchronizer)))) head;
  95. ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * volatile tail;
  96. jint volatile state;
  97. public: // actually package-private
  98. static const jlong spinForTimeoutThreshold = 1000LL;
  99. private:
  100. static ::sun::misc::Unsafe * unsafe;
  101. static jlong stateOffset;
  102. static jlong headOffset;
  103. static jlong tailOffset;
  104. static jlong waitStatusOffset;
  105. public:
  106. static ::java::lang::Class class$;
  107. };
  108. #endif // __java_util_concurrent_locks_AbstractQueuedSynchronizer__