src/hotspot/share/jfr/writers/jfrJavaEventWriter.cpp
changeset 55565 51b28beb53fd
parent 54847 59ea39bb2809
equal deleted inserted replaced
55564:7df7c1f71ccf 55565:51b28beb53fd
   133 }
   133 }
   134 
   134 
   135 bool JfrJavaEventWriter::initialize() {
   135 bool JfrJavaEventWriter::initialize() {
   136   static bool initialized = false;
   136   static bool initialized = false;
   137   if (!initialized) {
   137   if (!initialized) {
   138     Thread* thread = Thread::current();
   138     initialized = setup_event_writer_offsets(Thread::current());
   139     initialized = setup_event_writer_offsets(thread);
       
   140   }
   139   }
   141   return initialized;
   140   return initialized;
   142 }
   141 }
   143 
   142 
   144 jboolean JfrJavaEventWriter::flush(jobject writer, jint used, jint requested, JavaThread* jt) {
   143 jboolean JfrJavaEventWriter::flush(jobject writer, jint used, jint requested, JavaThread* jt) {
   153   // "validity" is contextually defined here to mean
   152   // "validity" is contextually defined here to mean
   154   // that some memory location was provided that is
   153   // that some memory location was provided that is
   155   // large enough to accommodate the "requested size".
   154   // large enough to accommodate the "requested size".
   156   const bool is_valid = buffer->free_size() >= (size_t)(used + requested);
   155   const bool is_valid = buffer->free_size() >= (size_t)(used + requested);
   157   u1* const new_current_position = is_valid ? buffer->pos() + used : buffer->pos();
   156   u1* const new_current_position = is_valid ? buffer->pos() + used : buffer->pos();
       
   157   assert(start_pos_offset != invalid_offset, "invariant");
   158   w->long_field_put(start_pos_offset, (jlong)buffer->pos());
   158   w->long_field_put(start_pos_offset, (jlong)buffer->pos());
   159   w->long_field_put(current_pos_offset, (jlong)new_current_position);
   159   w->long_field_put(current_pos_offset, (jlong)new_current_position);
   160   // only update java writer if underlying memory changed
   160   // only update java writer if underlying memory changed
   161   if (buffer != current) {
   161   if (buffer != current) {
   162     w->long_field_put(start_pos_address_offset, (jlong)buffer->pos_address());
   162     w->long_field_put(start_pos_address_offset, (jlong)buffer->pos_address());