Deloxide - Deadlock Detection Visualization

Loading visualization...

### Step Information

Select a step or use the controls to navigate through the visualization.

### Wait-for Graph

The wait-for graph will appear here once resources are being requested.

Nodes
Thread
Mutex
RwLock
Condvar
Links
Attempt
Wait
Acquired
RW Read
RW Write
Released
Notify
Spawn
Exit
Deadlock

## How to Use This Visualization

### Controls

- Previous/Next: Navigate between steps
- Play/Stop: Automatically advance through steps
- Faster/Slower: Adjust animation playback speed
- Reset: Return to the first step

### Keyboard Shortcuts

- Left Arrow: Previous step
- Right Arrow: Next step
- Up Arrow: Increase animation speed
- Down Arrow: Decrease animation speed
- Space: Play/Stop animation
- R: Reset to first step

### Visualization Legend

The visualization shows threads and synchronization primitives (Mutex, RwLock, Condvar) as nodes, with different types of relationships between them:

Thread Nodes: Shown as circles labeled with the thread ID
Mutex: Mutual exclusion lock - only one thread can acquire it at a time
RwLock: Reader-writer lock - multiple readers or one writer
Condvar: Condition variable - allows threads to wait for conditions
Attempt: Thread tries to acquire a lock
Wait (Condvar): Thread is waiting on a condition
Notify: Condvar notified waiter(s)
Acquired: Lock acquired
Released: Lock released
Spawn: Thread/resource created
Exit: Thread/resource dropped
Deadlock: Circular wait detected

### Wait-for Graph

The wait-for graph shows which threads are waiting for resources held by other threads. When a cycle appears in this graph, a deadlock has been detected.

## Share This Visualization

Use the link below to share this visualization with others:

Link copied to clipboard!

## Upload Deadlock Log File

Drag and drop a single Deloxide log file here to load automatically

or

### Log Content Preview