| |
| // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- |
| |
| #ifndef __java_util_concurrent_Exchanger__ |
| #define __java_util_concurrent_Exchanger__ |
| |
| #pragma interface |
| |
| #include <java/lang/Object.h> |
| #include <gcj/array.h> |
| |
| |
| class java::util::concurrent::Exchanger : public ::java::lang::Object |
| { |
| |
| ::java::lang::Object * doExchange(::java::lang::Object *, jboolean, jlong); |
| jint hashIndex(); |
| void createSlot(jint); |
| static jboolean tryCancel(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *); |
| static ::java::lang::Object * spinWait(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *); |
| static ::java::lang::Object * await(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *); |
| ::java::lang::Object * awaitNanos(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *, jlong); |
| ::java::lang::Object * scanOnTimeout(::java::util::concurrent::Exchanger$Node *); |
| public: |
| Exchanger(); |
| virtual ::java::lang::Object * exchange(::java::lang::Object *); |
| virtual ::java::lang::Object * exchange(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *); |
| private: |
| static jint NCPU; |
| static const jint CAPACITY = 32; |
| static jint FULL; |
| static jint SPINS; |
| static jint TIMED_SPINS; |
| static ::java::lang::Object * CANCEL; |
| static ::java::lang::Object * NULL_ITEM; |
| JArray< ::java::util::concurrent::Exchanger$Slot * > * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) arena; |
| ::java::util::concurrent::atomic::AtomicInteger * max; |
| public: |
| static ::java::lang::Class class$; |
| }; |
| |
| #endif // __java_util_concurrent_Exchanger__ |