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.