O'Reilly logo

Solaris™ Internals: Solaris 10 and OpenSolaris Kernel Architecture, Second Edition by Richard McDougall, Jim Mauro

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

20. Task Queues

Contributions by Alexander Kolbasov

In this chapter, we discuss task queues in Solaris.

20.1 Overview of Task Queues

It is common for you, the kernel programmer, to postpone the processing of some tasks and delegate their execution to another kernel thread. There may be several reasons for doing this:

  • You have a task that isn’t time-critical, but a current code path that is.
  • You have a task that may require grabbing locks that a thread already holds.
  • You have a task that needs to block (for example, to wait for memory), but you have a thread that cannot block in its current context.
  • You have a code path that can’t complete because of a specific condition but also can’t sleep or fail. In this case, the task is immediately queued ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required