kernel: Remove support for thread_queue
This commit is contained in:
@@ -73,11 +73,6 @@ using BKernel::ThreadCreationAttributes;
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void thread_enqueue(Thread *t, struct thread_queue *q);
|
|
||||||
Thread *thread_lookat_queue(struct thread_queue *q);
|
|
||||||
Thread *thread_dequeue(struct thread_queue *q);
|
|
||||||
Thread *thread_dequeue_id(struct thread_queue *q, thread_id id);
|
|
||||||
|
|
||||||
void thread_at_kernel_entry(bigtime_t now);
|
void thread_at_kernel_entry(bigtime_t now);
|
||||||
// called when the thread enters the kernel on behalf of the thread
|
// called when the thread enters the kernel on behalf of the thread
|
||||||
void thread_at_kernel_exit(void);
|
void thread_at_kernel_exit(void);
|
||||||
|
|||||||
@@ -418,7 +418,6 @@ struct Thread : TeamThreadIteratorEntry<thread_id>, KernelReferenceable,
|
|||||||
int64 serial_number; // immutable after adding thread to hash
|
int64 serial_number; // immutable after adding thread to hash
|
||||||
Thread *hash_next; // protected by thread hash lock
|
Thread *hash_next; // protected by thread hash lock
|
||||||
Thread *team_next; // protected by team lock and fLock
|
Thread *team_next; // protected by team lock and fLock
|
||||||
Thread *queue_next; // protected by scheduler lock
|
|
||||||
timer alarm; // protected by scheduler lock
|
timer alarm; // protected by scheduler lock
|
||||||
char name[B_OS_NAME_LENGTH]; // protected by fLock
|
char name[B_OS_NAME_LENGTH]; // protected by fLock
|
||||||
int32 priority; // protected by scheduler lock
|
int32 priority; // protected by scheduler lock
|
||||||
@@ -781,12 +780,6 @@ using BKernel::ProcessGroup;
|
|||||||
using BKernel::ProcessGroupList;
|
using BKernel::ProcessGroupList;
|
||||||
|
|
||||||
|
|
||||||
struct thread_queue {
|
|
||||||
Thread* head;
|
|
||||||
Thread* tail;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // !_ASSEMBLER
|
#endif // !_ASSEMBLER
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -165,7 +165,6 @@ Thread::Thread(const char* name, thread_id threadID, struct cpu_ent* cpu)
|
|||||||
serial_number(-1),
|
serial_number(-1),
|
||||||
hash_next(NULL),
|
hash_next(NULL),
|
||||||
team_next(NULL),
|
team_next(NULL),
|
||||||
queue_next(NULL),
|
|
||||||
priority(-1),
|
priority(-1),
|
||||||
io_priority(-1),
|
io_priority(-1),
|
||||||
cpu(cpu),
|
cpu(cpu),
|
||||||
@@ -1698,8 +1697,8 @@ _dump_thread_info(Thread *thread, bool shortInfo)
|
|||||||
thread->id);
|
thread->id);
|
||||||
kprintf("serial_number: %" B_PRId64 "\n", thread->serial_number);
|
kprintf("serial_number: %" B_PRId64 "\n", thread->serial_number);
|
||||||
kprintf("name: \"%s\"\n", thread->name);
|
kprintf("name: \"%s\"\n", thread->name);
|
||||||
kprintf("hash_next: %p\nteam_next: %p\nq_next: %p\n",
|
kprintf("hash_next: %p\nteam_next: %p\n",
|
||||||
thread->hash_next, thread->team_next, thread->queue_next);
|
thread->hash_next, thread->team_next);
|
||||||
kprintf("priority: %" B_PRId32 " (I/O: %" B_PRId32 ")\n",
|
kprintf("priority: %" B_PRId32 " (I/O: %" B_PRId32 ")\n",
|
||||||
thread->priority, thread->io_priority);
|
thread->priority, thread->io_priority);
|
||||||
kprintf("state: %s\n", state_to_text(thread, thread->state));
|
kprintf("state: %s\n", state_to_text(thread, thread->state));
|
||||||
@@ -2348,67 +2347,6 @@ thread_reset_for_exec(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*! Insert a thread to the tail of a queue */
|
|
||||||
void
|
|
||||||
thread_enqueue(Thread *thread, struct thread_queue *queue)
|
|
||||||
{
|
|
||||||
thread->queue_next = NULL;
|
|
||||||
if (queue->head == NULL) {
|
|
||||||
queue->head = thread;
|
|
||||||
queue->tail = thread;
|
|
||||||
} else {
|
|
||||||
queue->tail->queue_next = thread;
|
|
||||||
queue->tail = thread;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Thread *
|
|
||||||
thread_lookat_queue(struct thread_queue *queue)
|
|
||||||
{
|
|
||||||
return queue->head;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Thread *
|
|
||||||
thread_dequeue(struct thread_queue *queue)
|
|
||||||
{
|
|
||||||
Thread *thread = queue->head;
|
|
||||||
|
|
||||||
if (thread != NULL) {
|
|
||||||
queue->head = thread->queue_next;
|
|
||||||
if (queue->tail == thread)
|
|
||||||
queue->tail = NULL;
|
|
||||||
}
|
|
||||||
return thread;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Thread *
|
|
||||||
thread_dequeue_id(struct thread_queue *q, thread_id id)
|
|
||||||
{
|
|
||||||
Thread *thread;
|
|
||||||
Thread *last = NULL;
|
|
||||||
|
|
||||||
thread = q->head;
|
|
||||||
while (thread != NULL) {
|
|
||||||
if (thread->id == id) {
|
|
||||||
if (last == NULL)
|
|
||||||
q->head = thread->queue_next;
|
|
||||||
else
|
|
||||||
last->queue_next = thread->queue_next;
|
|
||||||
|
|
||||||
if (q->tail == thread)
|
|
||||||
q->tail = last;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
last = thread;
|
|
||||||
thread = thread->queue_next;
|
|
||||||
}
|
|
||||||
return thread;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
thread_id
|
thread_id
|
||||||
allocate_thread_id()
|
allocate_thread_id()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user