< prev index next >
src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 45,66 ****
assert(_chunkstate == NULL, "invariant");
_chunkstate = new JfrChunkState();
return _chunkstate != NULL;
}
! static fio_fd open_existing(const char* path) {
! return os::open(path, O_RDWR, S_IREAD | S_IWRITE);
! }
!
! static fio_fd open_chunk(const char* path) {
assert(JfrStream_lock->owned_by_self(), "invariant");
! return path != NULL ? open_existing(path) : invalid_fd;
}
! bool JfrChunkWriter::open() {
assert(_chunkstate != NULL, "invariant");
! JfrChunkWriterBase::reset(open_chunk(_chunkstate->path()));
const bool is_open = this->has_valid_fd();
if (is_open) {
this->bytes("FLR", MAGIC_LEN);
this->be_write((u2)JFR_VERSION_MAJOR);
this->be_write((u2)JFR_VERSION_MINOR);
--- 45,64 ----
assert(_chunkstate == NULL, "invariant");
_chunkstate = new JfrChunkState();
return _chunkstate != NULL;
}
! static fio_fd open_chunk(const char* path, bool vm_error) {
assert(JfrStream_lock->owned_by_self(), "invariant");
! int flags = vm_error ? (O_CREAT | O_WRONLY) : O_RDWR;
! const int mode = S_IREAD | S_IWRITE;
! return path != NULL ? os::open(path, flags, mode) : invalid_fd;
}
! bool JfrChunkWriter::open(bool vm_error) {
assert(_chunkstate != NULL, "invariant");
! JfrChunkWriterBase::reset(open_chunk(_chunkstate->path(), vm_error));
const bool is_open = this->has_valid_fd();
if (is_open) {
this->bytes("FLR", MAGIC_LEN);
this->be_write((u2)JFR_VERSION_MAJOR);
this->be_write((u2)JFR_VERSION_MINOR);
< prev index next >