June 26-30, 2023
Prague, Czech Republic + Virtual
View More Details & Registration
Note: The schedule is subject to change.

The Sched app allows you to build your schedule but is not a substitute for your event registration. You must be registered for Embedded Open Source Summit 2023 to participate in the sessions. If you have not registered but would like to join us, please go to the event registration page to purchase a registration.

This schedule is automatically displayed in Central European Summer Time (UTC/GMT +2). To see the schedule in your preferred timezone, please select from the drop-down menu to the right, above "Filter by Date."

IMPORTANT NOTE: Timing of sessions and room locations are subject to change.

Friday, June 30 • 14:00 - 14:40
Threads in Embedded Linux- 6 Easy Pieces - Loïc Domaigné, Doulos

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Processes, Light-weight processes, (green) threads, fibers, co-routines, tasks, you named it. All these names refer to programming models for implementing concurrent processing efficiently. In this talk, Loïc is going to provide you a map of how to navigate the threads landscape on Linux. The talk starts with a brief review of the clone(2) system call, and how this translates to processes and threads at user-space level. It then reviews the thread life cycle (creation, joining, detaching, exiting), followed by a focus on the thread stack and size and illustrates how glibc and musl differ in that regard. Loïc then discusses memory synchronization, mutexes and condition variables and shows typical use. The talk concludes by looking at threads and signal delivery. This is a practical hands-on talk, so we'll demo (broken-) code, look under the hood what's going on using tools like pmap, strace, ltrace,.. and possibly will have a peek at some musl or glibc code implementation! Featuring: Help, compiling with "-pthread" breaks my non-threaded code! When threads strike and refuse starting. Did you say stack size? Aren't mutex just binary semaphore? What's the condition in condition variable? There was once a happy bunch of threads in a process, suddenly a signal is delivered…

avatar for Loïc Domaigné

Loïc Domaigné

Senior Member, Technical Staff, Doulos
Loïc Domaigné has been working since 1996 with Linux, engineering software for distributed, concurrent, failure tolerant, embedded, and real-time systems for various industrial sectors, like telecom, air traffic control, medical device manufacturer or automotive. Loïc loves sharing... Read More →

Friday June 30, 2023 14:00 - 14:40 CEST
South Hall 3A (Level 3)
  Embedded Linux Conference (ELC)