reserved first 3 handles for stdin,stdout,stderr
This commit is contained in:
parent
55a2bfcc29
commit
172fa7df6e
|
@ -3,6 +3,9 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
namespace Core::FileSys {
|
namespace Core::FileSys {
|
||||||
|
|
||||||
|
constexpr int RESERVED_HANDLES = 3; //first 3 handles are stdin,stdout,stderr
|
||||||
|
|
||||||
void MntPoints::mount(const std::string& host_folder, const std::string& guest_folder) {
|
void MntPoints::mount(const std::string& host_folder, const std::string& guest_folder) {
|
||||||
std::unique_lock lock{m_mutex};
|
std::unique_lock lock{m_mutex};
|
||||||
|
|
||||||
|
@ -44,22 +47,22 @@ int HandleTable::createHandle() {
|
||||||
for (int index = 0; index < existingFilesNum; index++) {
|
for (int index = 0; index < existingFilesNum; index++) {
|
||||||
if (m_files.at(index) == nullptr) {
|
if (m_files.at(index) == nullptr) {
|
||||||
m_files[index] = file;
|
m_files[index] = file;
|
||||||
return index;
|
return index + RESERVED_HANDLES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_files.push_back(file);
|
m_files.push_back(file);
|
||||||
|
|
||||||
return existingFilesNum - 1;
|
return existingFilesNum + RESERVED_HANDLES - 1;
|
||||||
}
|
}
|
||||||
void HandleTable::deleteHandle(int d) {
|
void HandleTable::deleteHandle(int d) {
|
||||||
std::unique_lock lock{m_mutex};
|
std::unique_lock lock{m_mutex};
|
||||||
delete m_files.at(d);
|
delete m_files.at(d - RESERVED_HANDLES);
|
||||||
m_files[d] = nullptr;
|
m_files[d - RESERVED_HANDLES] = nullptr;
|
||||||
}
|
}
|
||||||
File* HandleTable::getFile(int d) {
|
File* HandleTable::getFile(int d) {
|
||||||
std::unique_lock lock{m_mutex};
|
std::unique_lock lock{m_mutex};
|
||||||
return m_files.at(d);
|
return m_files.at(d - RESERVED_HANDLES);
|
||||||
}
|
}
|
||||||
File* HandleTable::getFile(const std::string& real_name) {
|
File* HandleTable::getFile(const std::string& real_name) {
|
||||||
std::unique_lock lock{m_mutex};
|
std::unique_lock lock{m_mutex};
|
||||||
|
|
Loading…
Reference in New Issue