mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 18:53:28 +01:00
parent
e9e139c364
commit
630edde10f
@ -497,7 +497,7 @@ int main(int argc, char** argv)
|
||||
fs::device_stat stats{};
|
||||
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
|
||||
|
@ -533,7 +533,7 @@ bool logs::file_writer::flush(u64 bufv)
|
||||
const u64 read_pos = m_out;
|
||||
const u64 out_index = read_pos % 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)
|
||||
{
|
||||
@ -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 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;
|
||||
}
|
||||
@ -644,13 +644,13 @@ void logs::file_writer::log(const char* text, usz size)
|
||||
|
||||
void logs::file_writer::sync()
|
||||
{
|
||||
if (!m_fptr || (!m_fout && !m_fout2))
|
||||
if (!m_fptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user