@@ -79,16 +79,21 @@ impl Condvar {
79
79
} ,
80
80
..mem:: zeroed ( )
81
81
} ;
82
- let mut event: abi:: event = mem:: uninitialized ( ) ;
83
- let mut nevents: usize = mem:: uninitialized ( ) ;
84
- let ret = abi:: poll ( & subscription, & mut event, 1 , & mut nevents) ;
82
+ let mut event: mem:: MaybeUninit < abi:: event > = mem:: MaybeUninit :: uninit ( ) ;
83
+ let mut nevents: mem:: MaybeUninit < usize > = mem:: MaybeUninit :: uninit ( ) ;
84
+ let ret = abi:: poll (
85
+ & subscription,
86
+ event. as_mut_ptr ( ) ,
87
+ 1 ,
88
+ nevents. get_mut ( )
89
+ ) ;
85
90
assert_eq ! (
86
91
ret,
87
92
abi:: errno:: SUCCESS ,
88
93
"Failed to wait on condition variable"
89
94
) ;
90
95
assert_eq ! (
91
- event. error,
96
+ event. assume_init ( ) . error,
92
97
abi:: errno:: SUCCESS ,
93
98
"Failed to wait on condition variable"
94
99
) ;
@@ -131,21 +136,27 @@ impl Condvar {
131
136
..mem:: zeroed ( )
132
137
} ,
133
138
] ;
134
- let mut events: [ abi:: event ; 2 ] = mem:: uninitialized ( ) ;
135
- let mut nevents: usize = mem:: uninitialized ( ) ;
136
- let ret = abi:: poll ( subscriptions. as_ptr ( ) , events. as_mut_ptr ( ) , 2 , & mut nevents) ;
139
+ let mut events: [ mem:: MaybeUninit < abi:: event > ; 2 ] = [ mem:: MaybeUninit :: uninit ( ) ; 2 ] ;
140
+ let mut nevents: mem:: MaybeUninit < usize > = mem:: MaybeUninit :: uninit ( ) ;
141
+ let ret = abi:: poll (
142
+ subscriptions. as_ptr ( ) ,
143
+ mem:: MaybeUninit :: first_ptr_mut ( & mut events) ,
144
+ 2 ,
145
+ nevents. get_mut ( )
146
+ ) ;
137
147
assert_eq ! (
138
148
ret,
139
149
abi:: errno:: SUCCESS ,
140
150
"Failed to wait on condition variable"
141
151
) ;
152
+ let nevents = nevents. assume_init ( ) ;
142
153
for i in 0 ..nevents {
143
154
assert_eq ! (
144
- events[ i] . error,
155
+ events[ i] . assume_init ( ) . error,
145
156
abi:: errno:: SUCCESS ,
146
157
"Failed to wait on condition variable"
147
158
) ;
148
- if events[ i] . type_ == abi:: eventtype:: CONDVAR {
159
+ if events[ i] . assume_init ( ) . type_ == abi:: eventtype:: CONDVAR {
149
160
return true ;
150
161
}
151
162
}
0 commit comments