mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-05 14:31:24 +12:00
parent
e9e139c364
commit
630edde10f
2 changed files with 5 additions and 5 deletions
|
@ -497,7 +497,7 @@ int main(int argc, char** argv)
|
||||||
fs::device_stat stats{};
|
fs::device_stat stats{};
|
||||||
if (!fs::statfs(fs::get_cache_dir(), stats) || stats.avail_free < 128 * 1024 * 1024)
|
if (!fs::statfs(fs::get_cache_dir(), stats) || stats.avail_free < 128 * 1024 * 1024)
|
||||||
{
|
{
|
||||||
report_fatal_error(fmt::format("Not enough free space (%f KB)", stats.avail_free / 1000000.));
|
std::fprintf(stderr, "Not enough free space for logs (%f KB)", stats.avail_free / 1000000.);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit log size to ~25% of free space
|
// Limit log size to ~25% of free space
|
||||||
|
|
|
@ -533,7 +533,7 @@ bool logs::file_writer::flush(u64 bufv)
|
||||||
const u64 read_pos = m_out;
|
const u64 read_pos = m_out;
|
||||||
const u64 out_index = read_pos % s_log_size;
|
const u64 out_index = read_pos % s_log_size;
|
||||||
const u64 pushed = (bufv / s_log_size) % s_log_size;
|
const u64 pushed = (bufv / s_log_size) % s_log_size;
|
||||||
const u64 end = std::min<u64>(out_index < pushed ? read_pos - out_index + pushed : (read_pos + s_log_size) & ~(s_log_size - 1), m_max_size);
|
const u64 end = std::min<u64>(out_index <= pushed ? read_pos - out_index + pushed : ((read_pos + s_log_size) & ~(s_log_size - 1)), m_max_size);
|
||||||
|
|
||||||
if (end > read_pos)
|
if (end > read_pos)
|
||||||
{
|
{
|
||||||
|
@ -590,7 +590,7 @@ void logs::file_writer::log(const char* text, usz size)
|
||||||
const u64 v1 = (v / s_log_size) % s_log_size;
|
const u64 v1 = (v / s_log_size) % s_log_size;
|
||||||
const u64 v2 = v % s_log_size;
|
const u64 v2 = v % s_log_size;
|
||||||
|
|
||||||
if (v1 + v2 + size > (out < v1 ? out + s_log_size : out)) [[unlikely]]
|
if (v1 + v2 + size >= (out <= v1 ? out + s_log_size : out)) [[unlikely]]
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -644,13 +644,13 @@ void logs::file_writer::log(const char* text, usz size)
|
||||||
|
|
||||||
void logs::file_writer::sync()
|
void logs::file_writer::sync()
|
||||||
{
|
{
|
||||||
if (!m_fptr || (!m_fout && !m_fout2))
|
if (!m_fptr)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait for the writer thread
|
// Wait for the writer thread
|
||||||
while ((m_out % s_log_size) * s_log_size < m_buf)
|
while ((m_out % s_log_size) * s_log_size != m_buf % (s_log_size * s_log_size))
|
||||||
{
|
{
|
||||||
if (m_out >= m_max_size)
|
if (m_out >= m_max_size)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue