开发者

bionic (android libc) mutex variants

Which types of mu开发者_开发技巧tex does bionic libc support?

  • recursive
  • timed
  • adaptive
  • errorchecking


from the documentation (bionic/libc/docs/OVERVIEW.TXT):

The implementation is based on futexes and strives to provide *very* short
code paths for common operations. Notable features are the following:

  - pthread_mutex_t, pthread_cond_t are only 4 bytes each.

  - Normal, recursive and error-check mutexes are supported, and the code
    path is heavily optimized for the normal case, which is used most of
    the time.

  - Process-shared mutexes and condition variables are not supported.
    Their implementation requires far more complexity and was absolutely
    not needed for Android (which uses other inter-process synchronization
    capabilities).

    Note that they could be added in the future without breaking the ABI
    by specifying more sophisticated code paths (which may make the common
    paths slightly slower though).

  - There is currently no support for read/write locks, priority-ceiling in
    mutexes and other more advanced features. Again, the main idea being
    that this was not needed for Android at all but could be added in the
    future.


So has anything changed during 5 years?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜