1325 Commits

Author SHA1 Message Date
Ben Blum
be2e4ef624 Allow failing in arc::exclusive; poison to fail subsequent accesses (fix #3092) 2012-08-09 17:22:19 -04:00
Ben Blum
190ecc220a Make sync primitives fail-unwind-friendly 2012-08-09 17:22:19 -04:00
Eric Holk
6a10e3a713 Added oneshot protocol. Fixes #3125 2012-08-09 11:55:17 -07:00
Graydon Hoare
71bc2673ed Fix number-peek code in fmt!, close #1610. 2012-08-08 18:40:30 -07:00
Brian Anderson
6a0720b439 Convert impls to new syntax 2012-08-08 18:19:24 -07:00
Eric Holk
e997948c8a Remove an invalid assert and some commented out code. 2012-08-08 18:03:28 -07:00
Eric Holk
c0874dbd21 Adding try_send for pipes::chan and pipes::shared_chan 2012-08-08 18:03:27 -07:00
Ben Blum
35db5b7be1 Merge pull request #3153 from jruderman/sconv
Add spawn_conversation
2012-08-08 17:05:31 -07:00
Ben Blum
604e4add4a sync: add blocking mutexes, condvars, and testcases 2012-08-08 19:59:38 -04:00
Michael Sullivan
79b5f68176 Implement + for @-vectors. 2012-08-08 14:30:45 -07:00
Jesse Ruderman
a76e4334b3 Add spawn_conversation 2012-08-08 16:57:13 -04:00
Eric Holk
c5fbff01ce Add a really optimistic fast path in receive. Gives about a 7% performance improvement in msgsend-ring-pipes 2012-08-08 10:28:57 -07:00
Ben Blum
64ba7a31cb Touch up semaphores; add another test 2012-08-07 18:57:49 -04:00
Ben Blum
1a6dadad5b fix trailing whitespace 2012-08-07 18:20:02 -04:00
Ben Blum
f2ca54991f Add sync.rs with counting blocking semaphores 2012-08-07 18:18:48 -04:00
Ben Blum
bdbad614ac Remove rust_cond_lock and sys::condition (rename to little_lock) 2012-08-07 18:18:48 -04:00
Brian Anderson
2772b2e5c7 syntax: Make match arm parsing more restrictive again
Require comma separators for all expression types except the plain block
2012-08-07 12:23:43 -07:00
Eric Holk
abf4421e7c Generate try_send versions for all the messages. Fixes #3128 2012-08-07 11:47:12 -07:00
Eric Holk
8d1922d4c8 Add a selectable implementation for *packet_header 2012-08-07 11:47:12 -07:00
Ben Blum
18ac4a8e6d Change task().future_result's argument mode 2012-08-07 14:26:41 -04:00
Ben Blum
ae6d84f573 Rework task::try for new task_builder interface (close #3103) 2012-08-07 14:26:41 -04:00
Ben Blum
0cc6cefaec Add util::ignore 2012-08-07 14:26:41 -04:00
Tim Chevalier
6bd01d0ac8 In resolve, forbid duplicate value, type, and module items
Closes #3099
2012-08-06 16:37:18 -07:00
Brian Anderson
ecaf9e39c9 Convert alt to match. Stop parsing alt 2012-08-06 15:36:30 -07:00
Brian Anderson
74370042aa core: Rename task::osmain to platform_thread. #3090 2012-08-06 14:07:51 -07:00
Eric Holk
4544c015b3 Fill out rust docs for pipes some more. 2012-08-06 13:25:34 -07:00
Eric Holk
9f287c211e Refcount tasks in packets to avoid races.
Revert "Once again, revert "Use pipes in compiletest""

Fixes #3098
2012-08-06 09:10:19 -07:00
Eric Holk
86947e47ad More documentation on pipes, and moving assert in runtime. 2012-08-06 09:07:40 -07:00
Brian Anderson
025d86624d Switch alts to use arrows 2012-08-05 22:08:09 -07:00
Ben Blum
0c623c4474 Document arc::exclusive. 2012-08-03 17:50:59 -04:00
Eric Holk
749a184a06 Fix a failing string test. 2012-08-03 12:04:19 -07:00
Eric Holk
01ca0d1f68 Be more defensive in pipes (#3098) 2012-08-03 12:04:18 -07:00
Tim Chevalier
948172b93f Make comparisons between region pointers work
Region pointers were considered a scalar type, so compare_scalar_type would
get called to compare region pointers in trans. This would fail, since
compare_scalar_type has no case for region pointers.

Changed type_is_scalar to return false for region pointers. This had the side
effect of breaking casts to types of the form &T. To ameliorate that, I added
library functions ptr::assimilate (taking a &T to a *T) and ptr::to_uint
(taking a &T to a uint), both of which use reinterpret_cast.

While I was at it, I removed ty::type_has_resources, which is dead code.
2012-08-02 23:53:45 -07:00
Niko Matsakis
31c5cec55b Purge placement new; Make borrowck know about unary move.
cc #3071
2012-08-02 22:36:36 -07:00
Eric Holk
bd195518c7 Fix an apparent race in pipes.
Also removed some unsafety in pipes and added vec::consume_mut.
2012-08-02 19:27:07 -07:00
Eric Holk
110ff312df Give better error messages when port_set.recv fails. 2012-08-02 19:27:07 -07:00
Graydon Hoare
4779d2b392 De-duplicate core::hash some, refactor the traits. 2012-08-02 18:06:33 -07:00
Graydon Hoare
009352101d Shift writer_util to a derived impl attached to the writer trait 2012-08-02 18:06:33 -07:00
Graydon Hoare
b14a6aca9f Cleanups in the int and uint templates. 2012-08-02 18:06:33 -07:00
Niko Matsakis
97452c0ca1 Remove modes from map API and replace with regions.
API is (for now) mostly by value, there are options to use it by
reference if you like.  Hash and equality functions must be pure
and by reference (forward looking to the day when something
like send_map becomes the standard map).
2012-08-02 15:53:28 -07:00
Ben Blum
b1784673b1 Clean up task.rs docs and use replace/swap_unwrap 2012-08-02 14:59:37 -04:00
Ben Blum
9facb15c49 option::swap_unwrap, the ubiquitous 'option dance'. 2012-08-02 14:59:37 -04:00
Ben Blum
63b70b2370 Remove std::util 2012-08-02 14:31:58 -04:00
Ben Blum
7d9c61a9fb Linked failure touchups (#1868) 2012-08-01 23:39:44 -04:00
Ben Blum
ac0c8b0823 Linked failure: add ASCII art. Close #1868. 2012-08-01 23:08:06 -04:00
Ben Blum
7cb3f3e86a Linked failure: enable unidirectional propagate test; replace FIXMEs with comments (tag #1868). 2012-08-01 23:08:06 -04:00
Ben Blum
43b8114750 Linked failure: Rewrite to use ancestor_list and send_map for proper-propagation. (tag #3068, #2190, #1868) 2012-08-01 23:08:01 -04:00
Brian Anderson
b355936b4d Convert ret to return 2012-08-01 19:16:06 -07:00
Brian Anderson
dc499f193e Merge pull request #3077 from erickt/incoming
core: change vec's ref_set to set_ref, move get_ref to unsafe::get.
2012-08-01 18:42:57 -07:00
Ben Blum
fd17d347b0 core.rc export core::util 2012-08-01 19:12:23 -04:00