Skip to content

Commit 1cf5807

Browse files
committed
Use function to initialize RawWaker
1 parent 98bacf8 commit 1cf5807

File tree

4 files changed

+9
-26
lines changed

4 files changed

+9
-26
lines changed

futures-test/src/task/panic_waker.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use futures_core::task::{Waker, RawWaker, RawWakerVTable};
22
use core::cell::UnsafeCell;
33
use core::ptr::null;
44

5-
unsafe fn noop_clone(_data: *const()) -> RawWaker {
5+
unsafe fn clone_panic_waker(_data: *const()) -> RawWaker {
66
raw_panic_waker()
77
}
88

@@ -14,16 +14,13 @@ unsafe fn wake_panic(_data: *const()) {
1414
}
1515

1616
const PANIC_WAKER_VTABLE: RawWakerVTable = RawWakerVTable {
17-
clone: noop_clone,
17+
clone: clone_panic_waker,
1818
drop: noop,
1919
wake: wake_panic,
2020
};
2121

2222
fn raw_panic_waker() -> RawWaker {
23-
RawWaker {
24-
data: null(),
25-
vtable: &PANIC_WAKER_VTABLE,
26-
}
23+
RawWaker::new(null(), &PANIC_WAKER_VTABLE)
2724
}
2825

2926
/// Create a new [`Waker`](futures_core::task::Waker) which will

futures-util/src/task/arc_wake.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@ pub trait ArcWake {
3737
let ptr = Arc::into_raw(wake) as *const();
3838

3939
unsafe {
40-
Waker::new_unchecked(RawWaker{
41-
data: ptr,
42-
vtable: waker_vtable!(Self),
43-
})
40+
Waker::new_unchecked(RawWaker::new(ptr, waker_vtable!(Self)))
4441
}
4542
}
4643
}
@@ -56,10 +53,7 @@ unsafe fn increase_refcount<T: ArcWake>(data: *const()) {
5653

5754
unsafe fn clone_arc_raw<T: ArcWake>(data: *const()) -> RawWaker {
5855
increase_refcount::<T>(data);
59-
RawWaker {
60-
data: data,
61-
vtable: waker_vtable!(T),
62-
}
56+
RawWaker::new(data, waker_vtable!(T))
6357
}
6458

6559
unsafe fn drop_arc_raw<T: ArcWake>(data: *const()) {

futures-util/src/task/noop_waker.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ const NOOP_WAKER_VTABLE: RawWakerVTable = RawWakerVTable {
1717
};
1818

1919
fn noop_raw_waker() -> RawWaker {
20-
RawWaker {
21-
data: null(),
22-
vtable: &NOOP_WAKER_VTABLE,
23-
}
20+
RawWaker::new(null(), &NOOP_WAKER_VTABLE)
2421
}
2522

2623
/// Create a new [`Waker`](futures_core::task::Waker) which does

futures-util/src/task/waker_ref.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,8 @@ where
7676
let ptr = &*wake as &W as *const W as *const();
7777

7878
let waker = unsafe {
79-
Waker::new_unchecked(RawWaker{
80-
data: ptr,
81-
vtable: ref_vtable!(W),
82-
})};
79+
Waker::new_unchecked(RawWaker::new(ptr, ref_vtable!(W)))
80+
};
8381
WakerRef::new(waker)
8482
}
8583

@@ -97,10 +95,7 @@ unsafe fn increase_refcount<T: ArcWake>(data: *const()) {
9795

9896
unsafe fn clone_arc_raw<T: ArcWake>(data: *const()) -> RawWaker {
9997
increase_refcount::<T>(data);
100-
RawWaker {
101-
data: data,
102-
vtable: owned_vtable!(T),
103-
}
98+
RawWaker:new(data, owned_vtable!(T))
10499
}
105100

106101
unsafe fn drop_arc_raw<T: ArcWake>(data: *const()) {

0 commit comments

Comments
 (0)