Ben Blum
92f60f4365
Don't fail from kill signals if already unwinding.
2013-08-02 17:31:45 -04:00
Ben Blum
d30cca46e6
Fix embarrassing bug where 'unkillable' would unwind improperly when it receives a kill signal.
2013-08-02 17:31:45 -04:00
Ben Blum
963d37e821
Temporary workaround to prevent taskgroup cleanup code from failing without an exception handler.
2013-08-01 17:07:31 -04:00
Ben Blum
036a6d2f00
Document task killing design and relaxed barrier rationale.
2013-08-01 16:52:37 -04:00
Ben Blum
880246618b
Relax some atomic barriers. Loosen up all that tension. There, doesn't that feel good?
2013-08-01 16:52:37 -04:00
Ben Blum
bc7cee7bbf
Move atomically to unstable::sync, and document what it actually does. Close #7872 .
2013-07-31 14:37:22 -04:00
Ben Blum
6b75e92afe
UnsafeArc methods return unsafe pointers, so are not themselves unsafe.
2013-07-30 13:19:26 -04:00
Ben Blum
f34fadd126
Implement select() for new runtime pipes.
2013-07-30 13:19:25 -04:00
Steven Stewart-Gallus
d0b7515aed
Change concurrency primitives to standard naming conventions
...
To be more specific:
`UPPERCASETYPE` was changed to `UppercaseType`
`type_new` was changed to `Type::new`
`type_function(value)` was changed to `value.method()`
2013-07-27 22:06:29 -07:00
Ben Blum
7ad7911222
Add watched and indestructible spawn modes.
2013-07-20 05:12:04 -04:00
Ben Blum
9bbec651df
Replace *rust_task ptrs in taskgroup code with TaskHandle, for transitioning to newsched killing.
2013-07-20 05:08:57 -04:00
Ben Blum
2a7273c71e
Stash a spare kill flag inside tasks, to save two atomic xadds in the blocking fastpath.
2013-07-20 05:08:57 -04:00
Ben Blum
e283c4ddff
Add tests for task killing and blocking.
2013-07-20 05:08:57 -04:00
Ben Blum
0101f35f27
Add BlockedTask (wake, try_block, etc) in kill.rs.
2013-07-20 05:08:57 -04:00
Ben Blum
e80efe3fda
Do a task-killed check at the start of task 'timeslices'.
2013-07-20 05:08:56 -04:00
Ben Blum
629f6e8d68
Implement KillHandle::kill() and friends (unkillable, atomically). Close #6377 .
2013-07-20 05:08:56 -04:00
Ben Blum
2a99320583
Add tests for KillHandle
2013-07-20 05:08:56 -04:00
Ben Blum
6882508b6f
Add kill::Death for task death services and use it in Task.
2013-07-20 05:08:56 -04:00
Ben Blum
52ca256d7b
Add KillHandle and implement exit code propagation to replace join_latch
2013-07-20 05:08:56 -04:00