Gold sponsors

IBM Corporation

Jasmine Conseil logo

Cloudsoft logo

Sonatype logo

SAP logo

Xored logo

Oracle

Amazon logo

Silver sponsors

Blackberry logo

ZeroTurnaround logo

Amazon Web Services logo

bsi logo

OnPositive logo

Google

Nuxeo logo

Actuate

Bronze sponsors

github

froglogic

Microsoft logo

Paremus logo

JBoss logo

Genuitec logo

Juniper logo

Soyatec logo

itemis logo

Totvs logo

AccuRev logo

Activity sponsor

eclipsesource

Media sponsors

Methods & Tools logo


Deadlocks: The beginning of the end

Serge Beauchamp (Freescale Semiconductor )

Making at Eclipse · Standard
Thursday, 13:30, 20 minutes | Stevens Creek

Tags:
7
·
8
·
9
·
10
·
11
·
12
·
13
·
14
·
15
·
16
·
17
·
18

Multi-threaded programming has always been a hard domain to master.

Even by carefully designing programs where data access is protected by synchronization primitives, when systems grow in complexity and modules, it becomes impossible to effectively manage the ever more complex web of locks to avoid the unpredictable and dreaded deadlocks.

Most programs then resort to simply reducing concurrency of the system, limiting parallelism to few restricted and well defined operations and modules, leading to sub-optimal performance and usability.

In order to help the Eclipse community solve this problem, Freescale is releasing an open source tool, the deadlock preventer, which allows to detect dynamically the potential deadlocks present in a java program deterministically without depending on unpredictable race-conditions.

By using the deadlock preventer, both as a development tool and as integrated as part of a release engineering process, a software can eventually be guaranteed before release not to contain any undiscovered deadlocks that would otherwise reveal themselves unpredictably to the users.

Without this tool, developers are reduced to being blindfolded, fixing deadlocking issues when they arise, based on unpredictable race conditions. Worse, developers can't ensure that a code change to fix a deadlock will not introduce another deadlock in a different code path.

In this talk, we will look in depth on how can the deadlock preventer can be used to find potential and existing deadlocks in java programs using java synchronized blocks, java 1.5 concurrent API and Eclipse lock/Jobs API, including the Eclipse Platform and Eclipse plugins.

Udpate: screencast of the talk:

Serge Beauchamp is Senior Software Engineer at Freescale Semiconductor. He has been developing C/C++ IDE since 2000 where he joined the IDE team at Metrowerks to work on their CodeWarrior tools. He is an Eclipse Platform committer, and has worked on the 3.6 flexible resource features.

Download Material

Download file of related material.