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.

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

xx xxxxxxx xxxx xxxx xxx xxxxx xxxx xxxxxxx xxx xxxxxx xx xxxxx xxx xxxx. xxxxxxxxx xxxx_xxxxxxxx(xxxxxx).

xxxxxx xxxxxx xx xxxxx:

  • ('xxxxxxx', xxxxxx, xxxxxxxx): 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', xxxxxx, xxxxxxxx): 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 (xxxx, xxxxx) xx xxx xxxxx xxxxxx x xxxxxxxx xxxxxx, xx (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 xxx 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: Pythonfind_deadlock
Sample tests

Unlock the problem to run it against the tests.