]> gcc.gnu.org Git - gcc.git/blame - libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h
libjava
[gcc.git] / libjava / java / util / concurrent / locks / AbstractQueuedSynchronizer.h
CommitLineData
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>
10extern "Java"
11{
12 namespace sun
13 {
14 namespace misc
15 {
16 class Unsafe;
17 }
18 }
19}
20
21class java::util::concurrent::locks::AbstractQueuedSynchronizer : public ::java::util::concurrent::locks::AbstractOwnableSynchronizer
22{
23
24public: // actually protected
25 AbstractQueuedSynchronizer();
26 virtual jint getState();
27 virtual void setState(jint);
28 virtual jboolean compareAndSetState(jint, jint);
29private:
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();
39public: // actually package-private
40 virtual jboolean acquireQueued(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint);
41private:
42 void doAcquireInterruptibly(jint);
43 jboolean doAcquireNanos(jint, jlong);
44 void doAcquireShared(jint);
45 void doAcquireSharedInterruptibly(jint);
46 jboolean doAcquireSharedNanos(jint, jlong);
47public: // 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();
53public:
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();
65private:
66 ::java::lang::Thread * fullGetFirstQueuedThread();
67public:
68 virtual jboolean isQueued(::java::lang::Thread *);
69public: // actually package-private
70 virtual jboolean apparentlyFirstQueuedIsExclusive();
71 virtual jboolean isFirst(::java::lang::Thread *);
72 virtual jboolean fullIsFirst(::java::lang::Thread *);
73public:
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();
79public: // actually package-private
80 virtual jboolean isOnSyncQueue(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
81private:
82 jboolean findNodeFromTail(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
83public: // 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 *);
87public:
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 *);
92private:
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);
96public: // actually package-private
97 static void access$0();
98private:
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
103public: // actually package-private
104 static const jlong spinForTimeoutThreshold = 1000LL;
105private:
106 static ::sun::misc::Unsafe * unsafe;
107 static jlong stateOffset;
108 static jlong headOffset;
109 static jlong tailOffset;
110 static jlong waitStatusOffset;
111public:
112 static ::java::lang::Class class$;
113};
114
115#endif // __java_util_concurrent_locks_AbstractQueuedSynchronizer__
This page took 0.101134 seconds and 5 git commands to generate.