Chapter 9. Processes, Threads, and Synchronization

In Chapter 3, I gave an overview of the multitasking capability of Symbian OS, and introduced how processes and threads are used. This chapter continues that discussion by showing you specifically how to create and manage your own processes and threads using the APIs Symbian OS provides. I'll also describe how to synchronize, and communicate between threads, using shared memory regions, semaphores, mutexes, and critical sections.

Understanding the material in this chapter is not absolutely necessary for basic Symbian OS programming, since processes and threads are handled by the system for the most part. However, at some point you may find that you need to create your own processes or threads. For example, you may want to create a server that runs as a separate process, launched by your program when needed. Or you may want to create your own threads if you are porting code from an environment that relies heavily on them. However, on Symbian OS, implementing threads in your program is generally discouraged in favor of using active objects (see section 9.2).

Understanding the details of how processes and threads function and communicate will provide you with a deeper understanding of how the various frameworks, such as active objects and the client–server pattern, operate (these are covered in Chapters 8 and 10, respectively).

Processes

A Symbian OS process is an executable that has its own data space, stack, and heap. A process is contained ...

Get Developing Software for Symbian OS: A Beginner's Guide to Creating Symbian OS v9 Smartphone Applications in C++ 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.