From 6f12f2233e52a18c61aa30aceb204ffa9f9d2011 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 31 Jul 2017 17:02:51 -0700 Subject: Add documentation on oneway transaction ordering. Test: built Change-Id: I4d2e336327a4ce9c8f76d49037c894e981bdf571 --- core/java/android/os/IBinder.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/java/android/os/IBinder.java b/core/java/android/os/IBinder.java index f762a052cb41..d5216e73ba66 100644 --- a/core/java/android/os/IBinder.java +++ b/core/java/android/os/IBinder.java @@ -153,6 +153,14 @@ public interface IBinder { * caller returns immediately, without waiting for a result from the * callee. Applies only if the caller and callee are in different * processes. + * + *

The system provides special ordering semantics for multiple oneway calls + * being made to the same IBinder object: these calls will be dispatched in the + * other process one at a time, with the same order as the original calls. These + * are still dispatched by the IPC thread pool, so may execute on different threads, + * but the next one will not be dispatched until the previous one completes. This + * ordering is not guaranteed for calls on different IBinder objects or when mixing + * oneway and non-oneway calls on the same IBinder object.

*/ int FLAG_ONEWAY = 0x00000001; -- cgit v1.2.3-59-g8ed1b