Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dac2e9ca authored by Martijn Coenen's avatar Martijn Coenen
Browse files

ANDROID: binder: clarify deferred thread work.



Rename the function to more accurately reflect what
it does, and add a comment explaining why we use it.

Change-Id: I8d011c017dfc6e24b5b54fc462578f8e153e5926
Signed-off-by: default avatarMartijn Coenen <maco@android.com>
parent d55e6300
Loading
Loading
Loading
Loading
+11 −4
Original line number Original line Diff line number Diff line
@@ -836,7 +836,7 @@ binder_enqueue_work_ilocked(struct binder_work *work,
}
}


/**
/**
 * binder_enqueue_thread_work_ilocked_nowake() - Add thread work
 * binder_enqueue_deferred_thread_work_ilocked() - Add deferred thread work
 * @thread:       thread to queue work to
 * @thread:       thread to queue work to
 * @work:         struct binder_work to add to list
 * @work:         struct binder_work to add to list
 *
 *
@@ -847,7 +847,7 @@ binder_enqueue_work_ilocked(struct binder_work *work,
 * Requires the proc->inner_lock to be held.
 * Requires the proc->inner_lock to be held.
 */
 */
static void
static void
binder_enqueue_thread_work_ilocked_nowake(struct binder_thread *thread,
binder_enqueue_deferred_thread_work_ilocked(struct binder_thread *thread,
					    struct binder_work *work)
					    struct binder_work *work)
{
{
	binder_enqueue_work_ilocked(work, &thread->todo);
	binder_enqueue_work_ilocked(work, &thread->todo);
@@ -3333,7 +3333,14 @@ static void binder_transaction(struct binder_proc *proc,
	} else if (!(t->flags & TF_ONE_WAY)) {
	} else if (!(t->flags & TF_ONE_WAY)) {
		BUG_ON(t->buffer->async_transaction != 0);
		BUG_ON(t->buffer->async_transaction != 0);
		binder_inner_proc_lock(proc);
		binder_inner_proc_lock(proc);
		binder_enqueue_thread_work_ilocked_nowake(thread, tcomplete);
		/*
		 * Defer the TRANSACTION_COMPLETE, so we don't return to
		 * userspace immediately; this allows the target process to
		 * immediately start processing this transaction, reducing
		 * latency. We will then return the TRANSACTION_COMPLETE when
		 * the target replies (or there is an error).
		 */
		binder_enqueue_deferred_thread_work_ilocked(thread, tcomplete);
		t->need_reply = 1;
		t->need_reply = 1;
		t->from_parent = thread->transaction_stack;
		t->from_parent = thread->transaction_stack;
		thread->transaction_stack = t;
		thread->transaction_stack = t;