O'Reilly logo

Shared Source CLI Essentials by Ted Neward, Geoff Shilling, David Stutz

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

Synchronizing Processes and Threads

The CLI was designed to provide programmers with numerous design alternatives when creating components and when grouping components together into collaborative systems. Many of these have to do with using boundaries, such as processes, threads, and application domains, to package and protect component instances. To enable collaboration between components protected in this way, the PAL must not only support creating the boundaries, but also communicating across them. To complement the several kinds of isolation provided by the PAL to component implementers, the PAL also provides a rich set of synchronization primitives.

The Win32 synchronization mechanisms provided by the PAL are:

Critical sections

Critical sections are regions of code that are protected in such a way that only one thread at a time may enter the region and execute code.

Mutexes (mutual exclusion objects)

Mutexes are locks used to protect resources that guarantee ownership by a single thread at a time. A mutex can be used by multiple processes simultaneously; one thread from one process will be given ownership at a time.

Events

Events allow the programmer to send a message from one thread to another. Events can be used to communicate between threads in different processes.

Semaphores

Semaphores act as a gate and allow a limited number of threads (up to a programmable maximum) to enter. Rotor’s PAL limits the use semaphores to a single process.

Processes and threads

The PAL has the ...

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