equal
deleted
inserted
replaced
279 |
279 |
280 // none present |
280 // none present |
281 |
281 |
282 }; |
282 }; |
283 |
283 |
284 class PlatformEvent : public CHeapObj<mtInternal> { |
284 class PlatformEvent : public CHeapObj<mtSynchronizer> { |
285 private: |
285 private: |
286 double CachePad[4]; // increase odds that _mutex is sole occupant of cache line |
286 double CachePad[4]; // increase odds that _mutex is sole occupant of cache line |
287 volatile int _Event; |
287 volatile int _Event; |
288 int _nParked; |
288 int _nParked; |
289 int _pipev[2]; |
289 int _pipev[2]; |
315 void park(); |
315 void park(); |
316 int park(jlong millis); |
316 int park(jlong millis); |
317 void unpark(); |
317 void unpark(); |
318 }; |
318 }; |
319 |
319 |
320 class PlatformParker : public CHeapObj<mtInternal> { |
320 class PlatformParker : public CHeapObj<mtSynchronizer> { |
321 protected: |
321 protected: |
322 mutex_t _mutex[1]; |
322 mutex_t _mutex[1]; |
323 cond_t _cond[1]; |
323 cond_t _cond[1]; |
324 |
324 |
325 public: // TODO-FIXME: make dtor private |
325 public: // TODO-FIXME: make dtor private |
334 assert_status(status == 0, status, "mutex_init"); |
334 assert_status(status == 0, status, "mutex_init"); |
335 } |
335 } |
336 }; |
336 }; |
337 |
337 |
338 // Platform specific implementation that underpins VM Monitor/Mutex class |
338 // Platform specific implementation that underpins VM Monitor/Mutex class |
339 class PlatformMonitor : public CHeapObj<mtInternal> { |
339 class PlatformMonitor : public CHeapObj<mtSynchronizer> { |
340 private: |
340 private: |
341 mutex_t _mutex; // Native mutex for locking |
341 mutex_t _mutex; // Native mutex for locking |
342 cond_t _cond; // Native condition variable for blocking |
342 cond_t _cond; // Native condition variable for blocking |
343 |
343 |
344 public: |
344 public: |