Coding
Concurrency

Deadlock in a Wait-For Graph

Premium
Difficulty

Asked at Squarepoint Capital, Chicago Trading Company

Theory: Concurrency From Scratch

Read the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.

Available in Python and C++. You are solving it in Python. Switch to C++

xxxxxxxxx xxxx_xxxxxxxx(xxxxxx), xxxxx xxxxxxx x xxx xx xxxx xxxxxxx xxx xxxxxxx xxxxxx xxx xxxxxxx xxx xxxxx xxxxxxxx, xxxx xxx xxxxxxx xx xxx xxxxx.

x xxxxxxxxxx xxxxxxx xxxx xxx xxxxx. xx xxxxx xxxxx, xxxx xx xxx xxx xxxxxx xxxxxxxxxx xxxx xxxxx xxxxx xxxxx. xxxxxxx xxxx xxxxxxx xxxx xxx xxxx xxx xxxxx xxxxx xxx xxxx.

xxx xxxx_xxxxxxxx(xxxxxx: xxxx[xxxxx[xxx, xxx, xxx]]) -> xxxxx[xxxx, xxxx[xxx]]: ...

xxxx xxxxx xx x (xxxx, xxxxxx, xxxxxxxx) xxxxx xxxx xxxx xxxxxx 'xxxxxxx' xx 'xxxxxxx'. xxx xxxxxx xx (xxxx, xxxxx) xx (xxxxx, []).

xxxxxx xxxxxx xx xxxxx:

  • xxxxxxx: xxx xxxxxx xxxxx xxx xxxxxxxx xx xx xx xxxx. xx xxxxxxxx xxxx xxxxx xx, xxx xxxxxx xxxxxx xxx xxxxx xxxx xxxxxxxx'x xxxx xxxxx.
  • xxxxxxx: xxx xxxxxx xxxxx xx xx, xxx xxx xxxxxxx-xxxxxxx xxxxxx xx xxxxxxx xx. x xxxxxxx xx x xxxxxx xxxx xxxx xxx xxxx xxx xxxxxxxx xx xxxxxxx.

xxxxxx x xxxx xxxxxxx xxxx xxx xxxxx xx xxx xxxxx xxxxxx x xxxxxxxx xxxxxx, xx x xxxxx xxxxxxx xxxx xx xxxxx xxxxx xx xxx xxx xxxxx xxxxxxxx xxx.

xxxxx xx xxx xxxxxxx xx xxx xxxxx, xx xxxx xxxxx: xxxx xxxxx xxx xxx xxxx, xxx xxx xxxx xxxxx xxx xxx xxxxx. xxxxxx xx xx xxxxx xxxx xxx xxxxxxxx xxxxxx xx, xx xxx xxxx xxxxxxxx xxxxxx xxxxxxx xxx xxxx xxxx.

xxxxxxxx

xxxx_xxxxxxxx([('xxxxxxx', x, 'x'), ('xxxxxxx', x, 'x'),
               ('xxxxxxx', x, 'x'), ('xxxxxxx', x, 'x')])
# (xxxx, [x, x])

xxxx_xxxxxxxx([('xxxxxxx', x, 'x'), ('xxxxxxx', x, 'x'),
               ('xxxxxxx', x, 'x'), ('xxxxxxx', x, 'x'),
               ('xxxxxxx', x, 'x'), ('xxxxxxx', x, 'x')])
# (xxxxx, [])

xxx xxxxx xx xxxx-xxxxx xxxxxxxxx, xxx xxx xxxxxxxxxxx xxxxx xxxx xxxxxxxx xxxxxxx: xxxxxx x xxxxx x xxxx xxxxx x, xxxxxx x xxxxx x xxxx xxxxx x.

xxx xxxxxx xxxx xxx xxxx xxx xxxxx xx xxx xxxx xxxxx xxx xxxxxx xxxxxxxx, xxxxx xx xxx xxxxx xxxxxx "xxxxxx xxxxxxx xxxxx xx x xxxxx xxxxxx xxxxx" xx xxx xxxxxxxx xxxx.

xxxxxxxxxxx

  • xx xx ( x xxxxx xx^x ) xxxxxx. xxxxxx xxx xxx xxxxxxxx.
  • xxxxxxxxx xxx xxxxxxxx.
  • x xxxxxxx xxxxxx xxxxxx xx xxxxxxx xxxxxx xxxxx xx xx xxxxxxx xxxx xx xxxxx xxx, xxx xx xxxxxx xxxxxxxx x xxxxxxxx xx xxxxxxx xxxxx.
  • x xxxxxx xxxxxxx xx x xxxxx xx xxxxxxx xxx xxxxxxx xxx xxxxx. xxxx xx xxxxx xxxx xxxx xx xxxxx: xx xxxxx xxx xxxx-xxx xxxxx xxx xxx-xxxxxx xx xxxx xxx, xx xxxxxxx x xxxxx xx xxx x xxxxx xxxxxx. xxxxxxx x xxxx xxxxxxxxx xx xxxxx xxx xxxx xxxx xx xxxxxxxxx xxx xxxx xxx xxxxxx xxx xxxxxx xxxxxxxxxxx xxxx.

This problem is only available to subscribers.

Language:
Python 3.12C++23
find_deadlock

Unlock the problem to run it against the tests.