Skip to content

Commit cec1247

Browse files
committed
---
yaml --- r: 144379 b: refs/heads/try2 c: a17c7e4 h: refs/heads/master i: 144377: ced381e 144375: 0726df0 v: v3
1 parent 871daff commit cec1247

File tree

19 files changed

+379
-342
lines changed

19 files changed

+379
-342
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: a3e39b945402475dbe0eae91833981dad4622cb7
8+
refs/heads/try2: a17c7e4f2c0cfd800ce873b83334e8b17bef2f70
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/Makefile.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ ifdef CFG_DISABLE_OPTIMIZE
9696
$(info cfg: disabling rustc optimization (CFG_DISABLE_OPTIMIZE))
9797
CFG_RUSTC_FLAGS +=
9898
else
99-
CFG_RUSTC_FLAGS += -O
99+
# The rtopt cfg turns off runtime sanity checks
100+
CFG_RUSTC_FLAGS += -O --cfg rtopt
100101
endif
101102

102103
ifdef CFG_ENABLE_DEBUG

branches/try2/src/libstd/macros.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ macro_rules! rtdebug (
2727

2828
macro_rules! rtassert (
2929
( $arg:expr ) => ( {
30-
if !$arg {
31-
rtabort!("assertion failed: %s", stringify!($arg));
30+
if ::rt::util::ENFORCE_SANITY {
31+
if !$arg {
32+
rtabort!("assertion failed: %s", stringify!($arg));
33+
}
3234
}
3335
} )
3436
)

branches/try2/src/libstd/rt/comm.rs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ impl<T> ChanOne<T> {
125125
unsafe {
126126

127127
// Install the payload
128-
assert!((*packet).payload.is_none());
128+
rtassert!((*packet).payload.is_none());
129129
(*packet).payload = Some(val);
130130

131131
// Atomically swap out the old state to figure out what
@@ -144,16 +144,8 @@ impl<T> ChanOne<T> {
144144
match oldstate {
145145
STATE_BOTH => {
146146
// Port is not waiting yet. Nothing to do
147-
do Local::borrow::<Scheduler, ()> |sched| {
148-
rtdebug!("non-rendezvous send");
149-
sched.metrics.non_rendezvous_sends += 1;
150-
}
151147
}
152148
STATE_ONE => {
153-
do Local::borrow::<Scheduler, ()> |sched| {
154-
rtdebug!("rendezvous send");
155-
sched.metrics.rendezvous_sends += 1;
156-
}
157149
// Port has closed. Need to clean up.
158150
let _packet: ~Packet<T> = cast::transmute(this.void_packet);
159151
recvr_active = false;
@@ -251,7 +243,6 @@ impl<T> SelectInner for PortOne<T> {
251243
STATE_BOTH => {
252244
// Data has not been sent. Now we're blocked.
253245
rtdebug!("non-rendezvous recv");
254-
sched.metrics.non_rendezvous_recvs += 1;
255246
false
256247
}
257248
STATE_ONE => {
@@ -267,7 +258,6 @@ impl<T> SelectInner for PortOne<T> {
267258
(*self.packet()).state.store(STATE_ONE, Relaxed);
268259

269260
rtdebug!("rendezvous recv");
270-
sched.metrics.rendezvous_recvs += 1;
271261

272262
// Channel is closed. Switch back and check the data.
273263
// NB: We have to drop back into the scheduler event loop here
@@ -307,7 +297,7 @@ impl<T> SelectInner for PortOne<T> {
307297
STATE_ONE => true, // Lost the race. Data available.
308298
same_ptr => {
309299
// We successfully unblocked our task pointer.
310-
assert!(task_as_state == same_ptr);
300+
rtassert!(task_as_state == same_ptr);
311301
let handle = BlockedTask::cast_from_uint(task_as_state);
312302
// Because we are already awake, the handle we
313303
// gave to this port shall already be empty.
@@ -341,7 +331,8 @@ impl<T> SelectPortInner<T> for PortOne<T> {
341331
unsafe {
342332
// See corresponding store() above in block_on for rationale.
343333
// FIXME(#8130) This can happen only in test builds.
344-
assert!((*packet).state.load(Relaxed) == STATE_ONE);
334+
// This load is not required for correctness and may be compiled out.
335+
rtassert!((*packet).state.load(Relaxed) == STATE_ONE);
345336

346337
let payload = (*packet).payload.take();
347338

@@ -387,7 +378,7 @@ impl<T> Drop for ChanOne<T> {
387378
},
388379
task_as_state => {
389380
// The port is blocked waiting for a message we will never send. Wake it.
390-
assert!((*this.packet()).payload.is_none());
381+
rtassert!((*this.packet()).payload.is_none());
391382
let recvr = BlockedTask::cast_from_uint(task_as_state);
392383
do recvr.wake().map_move |woken_task| {
393384
Scheduler::run_task(woken_task);

0 commit comments

Comments
 (0)