Summary

  • A driver runs in a multithreaded environment.
  • The methods of a driver class can potentially be called from an arbitrary thread. This means that, even if a driver creates no threads of its own, it cannot escape the need for synchronized access to its shared instance variables and hardware.
  • The I/O Kit provides synchronization functions that a driver can use to prevent multiple threads from modifying shared data at the same time.
  • A spin lock is a suitable synchronization mechanism for code that will hold the lock only for a short period of time or for code that will execute inside a primary interrupt handler.
  • A mutex is a better choice if the lock will be held for longer periods, but it cannot be used inside a primary interrupt handler. ...

Get OS X and iOS Kernel Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.