]>
Commit | Line | Data |
---|---|---|
97b8365c TT |
1 | |
2 | // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- | |
3 | ||
4 | #ifndef __java_util_concurrent_locks_AbstractQueuedSynchronizer__ | |
5 | #define __java_util_concurrent_locks_AbstractQueuedSynchronizer__ | |
6 | ||
7 | #pragma interface | |
8 | ||
9 | #include <java/util/concurrent/locks/AbstractOwnableSynchronizer.h> | |
10 | extern "Java" | |
11 | { | |
12 | namespace sun | |
13 | { | |
14 | namespace misc | |
15 | { | |
16 | class Unsafe; | |
17 | } | |
18 | } | |
19 | } | |
20 | ||
21 | class java::util::concurrent::locks::AbstractQueuedSynchronizer : public ::java::util::concurrent::locks::AbstractOwnableSynchronizer | |
22 | { | |
23 | ||
24 | public: // actually protected | |
25 | AbstractQueuedSynchronizer(); | |
26 | virtual jint getState(); | |
27 | virtual void setState(jint); | |
28 | virtual jboolean compareAndSetState(jint, jint); | |
29 | private: | |
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); | |
41 | private: | |
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(); | |
53 | public: | |
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(); | |
65 | private: | |
66 | ::java::lang::Thread * fullGetFirstQueuedThread(); | |
67 | public: | |
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 *); | |
73 | public: | |
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 *); | |
81 | private: | |
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 *); | |
87 | public: | |
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 *); | |
92 | private: | |
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(); | |
98 | private: | |
99 | static const jlong serialVersionUID = 7373984972572414691LL; | |
7969a379 TT |
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; | |
102 | jint volatile state; | |
97b8365c TT |
103 | public: // actually package-private |
104 | static const jlong spinForTimeoutThreshold = 1000LL; | |
105 | private: | |
106 | static ::sun::misc::Unsafe * unsafe; | |
107 | static jlong stateOffset; | |
108 | static jlong headOffset; | |
109 | static jlong tailOffset; | |
110 | static jlong waitStatusOffset; | |
111 | public: | |
112 | static ::java::lang::Class class$; | |
113 | }; | |
114 | ||
115 | #endif // __java_util_concurrent_locks_AbstractQueuedSynchronizer__ |