mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 14:08:37 +00:00
Implement thread names
This commit is contained in:
parent
a1a91bb557
commit
9462e12735
4 changed files with 44 additions and 8 deletions
|
|
@ -5,6 +5,7 @@
|
|||
#include "types.hpp"
|
||||
|
||||
#include "../utils/SharedMutex.hpp"
|
||||
#include <thread>
|
||||
|
||||
namespace orbis {
|
||||
struct Process;
|
||||
|
|
@ -17,12 +18,13 @@ struct Thread {
|
|||
ptr<void> stackEnd;
|
||||
uint64_t fsBase{};
|
||||
uint64_t gsBase{};
|
||||
char name[32];
|
||||
char name[32]{};
|
||||
|
||||
uint64_t sigMask[4] = {0x7fff'ffff, 0};
|
||||
|
||||
lwpid_t tid = -1;
|
||||
ThreadState state = ThreadState::INACTIVE;
|
||||
std::thread handle;
|
||||
|
||||
// FIXME: implement thread destruction
|
||||
void incRef() {}
|
||||
|
|
|
|||
|
|
@ -338,6 +338,19 @@ struct OwningIdMap {
|
|||
fullChunks.clear(chunk);
|
||||
return true;
|
||||
}
|
||||
|
||||
void walk(auto cb) {
|
||||
for (std::size_t chunk = 0; chunk < ChunkCount; ++chunk) {
|
||||
std::size_t index = chunks[chunk].mask.countr_zero();
|
||||
|
||||
while (index < ChunkSize) {
|
||||
auto id = static_cast<IdT>(index + chunk * ChunkSize + MinId);
|
||||
cb(id, chunks[chunk].get(id));
|
||||
|
||||
index = chunks[chunk].mask.countr_zero(index + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
} // namespace utils
|
||||
} // namespace orbis
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue