26 #include "jfr/jni/jfrJavaSupport.hpp" |
26 #include "jfr/jni/jfrJavaSupport.hpp" |
27 #include "jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp" |
27 #include "jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp" |
28 #include "jfr/recorder/jfrRecorder.hpp" |
28 #include "jfr/recorder/jfrRecorder.hpp" |
29 #include "jfr/recorder/checkpoint/jfrCheckpointManager.hpp" |
29 #include "jfr/recorder/checkpoint/jfrCheckpointManager.hpp" |
30 #include "jfr/recorder/checkpoint/jfrMetadataEvent.hpp" |
30 #include "jfr/recorder/checkpoint/jfrMetadataEvent.hpp" |
31 #include "jfr/recorder/repository/jfrChunkSizeNotifier.hpp" |
31 #include "jfr/recorder/repository/jfrChunkRotation.hpp" |
32 #include "jfr/recorder/repository/jfrChunkWriter.hpp" |
32 #include "jfr/recorder/repository/jfrChunkWriter.hpp" |
33 #include "jfr/recorder/repository/jfrRepository.hpp" |
33 #include "jfr/recorder/repository/jfrRepository.hpp" |
34 #include "jfr/recorder/service/jfrPostBox.hpp" |
34 #include "jfr/recorder/service/jfrPostBox.hpp" |
35 #include "jfr/recorder/service/jfrRecorderService.hpp" |
35 #include "jfr/recorder/service/jfrRecorderService.hpp" |
36 #include "jfr/recorder/stacktrace/jfrStackTraceRepository.hpp" |
36 #include "jfr/recorder/stacktrace/jfrStackTraceRepository.hpp" |
337 } |
337 } |
338 |
338 |
339 void JfrRecorderService::open_new_chunk(bool vm_error) { |
339 void JfrRecorderService::open_new_chunk(bool vm_error) { |
340 assert(!_chunkwriter.is_valid(), "invariant"); |
340 assert(!_chunkwriter.is_valid(), "invariant"); |
341 assert(!JfrStream_lock->owned_by_self(), "invariant"); |
341 assert(!JfrStream_lock->owned_by_self(), "invariant"); |
|
342 JfrChunkRotation::on_rotation(); |
342 MutexLockerEx stream_lock(JfrStream_lock, Mutex::_no_safepoint_check_flag); |
343 MutexLockerEx stream_lock(JfrStream_lock, Mutex::_no_safepoint_check_flag); |
343 if (!_repository.open_chunk(vm_error)) { |
344 if (!_repository.open_chunk(vm_error)) { |
344 assert(!_chunkwriter.is_valid(), "invariant"); |
345 assert(!_chunkwriter.is_valid(), "invariant"); |
345 _storage.control().set_to_disk(false); |
346 _storage.control().set_to_disk(false); |
346 return; |
347 return; |