OSDN Git Service

Fix false alarm on thread suspend timeout
authortony.ys_liu <tony.ys_liu@htc.com>
Wed, 14 Jan 2015 10:28:03 +0000 (18:28 +0800)
committertony.ys_liu <tony.ys_liu@htc.com>
Wed, 14 Jan 2015 10:28:03 +0000 (18:28 +0800)
commit071e48ecfc95b1c67b07c975190d51f646ac4276
treec873eaedf521aebaabe92d61720b81b12343f9bb
parentc40a4350daac81ddbfc5f6ceab934f2180dc4ec6
Fix false alarm on thread suspend timeout

Root cause:
  CLOCK_REALTIME will jump backward/forward when system time-of-day clock is changed.
  It implies now_abs_ts will jump a lot across end_abs_ts.
  Then, it makes a false alarm (process crash) on thread suspend timeout when doing ComputeRelativeTimeSpec.

      if (ComputeRelativeTimeSpec(&rel_ts, end_abs_ts, now_abs_ts)) {
        return false;  // Timed out.
      }

Solution:
  Use CLOCK_MONOTONIC instead

Change-Id: I768af52b05ee1548bb291f7d5e2f389ec85e0e71
runtime/base/mutex.cc