1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 22:17:42 +00:00

Kernel: Use KResultOr and TRY() for ThreadTracer

Also make the constructor private, since it's only called by the static
factory function.
This commit is contained in:
Andreas Kling 2021-09-07 14:48:13 +02:00
parent ededd6aac6
commit cd5d483bbd
2 changed files with 3 additions and 6 deletions

View file

@ -785,10 +785,7 @@ void Process::set_tty(TTY* tty)
KResult Process::start_tracing_from(ProcessID tracer) KResult Process::start_tracing_from(ProcessID tracer)
{ {
auto thread_tracer = ThreadTracer::create(tracer); m_tracer = TRY(ThreadTracer::try_create(tracer));
if (!thread_tracer)
return ENOMEM;
m_tracer = move(thread_tracer);
return KSuccess; return KSuccess;
} }

View file

@ -15,7 +15,7 @@ namespace Kernel {
class ThreadTracer { class ThreadTracer {
public: public:
static OwnPtr<ThreadTracer> create(ProcessID tracer) { return try_make<ThreadTracer>(tracer); } static KResultOr<NonnullOwnPtr<ThreadTracer>> try_create(ProcessID tracer) { return adopt_nonnull_own_or_enomem(new (nothrow) ThreadTracer(tracer)); }
ProcessID tracer_pid() const { return m_tracer_pid; } ProcessID tracer_pid() const { return m_tracer_pid; }
bool has_pending_signal(u32 signal) const { return m_pending_signals & (1 << (signal - 1)); } bool has_pending_signal(u32 signal) const { return m_pending_signals & (1 << (signal - 1)); }
@ -34,9 +34,9 @@ public:
return m_regs.value(); return m_regs.value();
} }
private:
explicit ThreadTracer(ProcessID); explicit ThreadTracer(ProcessID);
private:
ProcessID m_tracer_pid { -1 }; ProcessID m_tracer_pid { -1 };
// This is a bitmap for signals that are sent from the tracer to the tracee // This is a bitmap for signals that are sent from the tracer to the tracee