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