about summary refs log tree commit diff
path: root/src/test/codegen/stack-alloc-string-slice.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-02-17 13:59:25 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-02-17 13:59:25 -0800
commit9c05c1c2366e286275c2320995ed5066bff08dd7 (patch)
tree271b953e009e0a4a0cba8e11019eb16b1241b643 /src/test/codegen/stack-alloc-string-slice.rs
parent47c31831a38bc2307234e54a48ad3bf071058ade (diff)
downloadrust-9c05c1c2366e286275c2320995ed5066bff08dd7.tar.gz
rust-9c05c1c2366e286275c2320995ed5066bff08dd7.zip
Fix a deadlock in channels, again.
This deadlock was caused when the channel was closed at just the right time, so
the extra `self.cnt.fetch_add` actually should have preserved the DISCONNECTED
state of the channel. by modifying this the channel entered a state such that
the port would never succeed in dropping.

This also moves the increment of self.steals until after the MAX_STEALS block.
The reason for this is that in 'fn recv()' the steals variable is decremented
immediately after the try_recv(), which could in theory set steals to -1 if it
was previously set to 0 in try_recv().

Closes #12340
Diffstat (limited to 'src/test/codegen/stack-alloc-string-slice.rs')
0 files changed, 0 insertions, 0 deletions