@@ -21,22 +21,22 @@ use std::sync::{Arc, Mutex, RwLock, RwLockWriteGuard};
21
21
///
22
22
/// It reuses the ids of decommissioned nodes to prevent unbounded growth of the audio graphs node
23
23
/// list (which is stored in a Vec indexed by the AudioNodeId).
24
- struct AudioNodeIdIssuer {
24
+ struct AudioNodeIdProvider {
25
25
/// incrementing id
26
26
id_inc : AtomicU64 ,
27
27
/// receiver for decommissioned AudioNodeIds, which can be reused
28
28
id_consumer : Mutex < llq:: Consumer < AudioNodeId > > ,
29
29
}
30
30
31
- impl AudioNodeIdIssuer {
31
+ impl AudioNodeIdProvider {
32
32
fn new ( id_consumer : llq:: Consumer < AudioNodeId > ) -> Self {
33
33
Self {
34
34
id_inc : AtomicU64 :: new ( 0 ) ,
35
35
id_consumer : Mutex :: new ( id_consumer) ,
36
36
}
37
37
}
38
38
39
- fn issue ( & self ) -> AudioNodeId {
39
+ fn get ( & self ) -> AudioNodeId {
40
40
if let Some ( available_id) = self . id_consumer . lock ( ) . unwrap ( ) . pop ( ) {
41
41
llq:: Node :: into_inner ( available_id)
42
42
} else {
@@ -75,8 +75,8 @@ struct ConcreteBaseAudioContextInner {
75
75
sample_rate : f32 ,
76
76
/// max number of speaker output channels
77
77
max_channel_count : usize ,
78
- /// issuer for new AudioNodeIds
79
- audio_node_id_issuer : AudioNodeIdIssuer ,
78
+ /// provider for new AudioNodeIds
79
+ audio_node_id_provider : AudioNodeIdProvider ,
80
80
/// destination node's current channel count
81
81
destination_channel_config : ChannelConfig ,
82
82
/// message channel from control to render thread
@@ -112,7 +112,7 @@ impl BaseAudioContext for ConcreteBaseAudioContext {
112
112
f : F ,
113
113
) -> T {
114
114
// create a unique id for this node
115
- let id = self . inner . audio_node_id_issuer . issue ( ) ;
115
+ let id = self . inner . audio_node_id_provider . get ( ) ;
116
116
let registration = AudioContextRegistration {
117
117
id,
118
118
context : self . clone ( ) ,
@@ -162,14 +162,14 @@ impl ConcreteBaseAudioContext {
162
162
Some ( ( send, recv) ) => ( Some ( send) , Some ( recv) ) ,
163
163
} ;
164
164
165
- let audio_node_id_issuer = AudioNodeIdIssuer :: new ( node_id_consumer) ;
165
+ let audio_node_id_provider = AudioNodeIdProvider :: new ( node_id_consumer) ;
166
166
167
167
let base_inner = ConcreteBaseAudioContextInner {
168
168
sample_rate,
169
169
max_channel_count,
170
170
render_channel : RwLock :: new ( render_channel) ,
171
171
queued_messages : Mutex :: new ( Vec :: new ( ) ) ,
172
- audio_node_id_issuer ,
172
+ audio_node_id_provider ,
173
173
destination_channel_config : ChannelConfigOptions :: default ( ) . into ( ) ,
174
174
frames_played,
175
175
queued_audio_listener_msgs : Mutex :: new ( Vec :: new ( ) ) ,
@@ -234,7 +234,7 @@ impl ConcreteBaseAudioContext {
234
234
// Validate if the hardcoded node IDs line up
235
235
debug_assert_eq ! (
236
236
base. inner
237
- . audio_node_id_issuer
237
+ . audio_node_id_provider
238
238
. id_inc
239
239
. load( Ordering :: Relaxed ) ,
240
240
LISTENER_PARAM_IDS . end,
@@ -460,13 +460,13 @@ mod tests {
460
460
use super :: * ;
461
461
462
462
#[ test]
463
- fn test_issue_node_id ( ) {
463
+ fn test_provide_node_id ( ) {
464
464
let ( mut id_producer, id_consumer) = llq:: Queue :: new ( ) . split ( ) ;
465
- let issuer = AudioNodeIdIssuer :: new ( id_consumer) ;
466
- assert_eq ! ( issuer . issue ( ) . 0 , 0 ) ; // newly assigned
467
- assert_eq ! ( issuer . issue ( ) . 0 , 1 ) ; // newly assigned
465
+ let provider = AudioNodeIdProvider :: new ( id_consumer) ;
466
+ assert_eq ! ( provider . get ( ) . 0 , 0 ) ; // newly assigned
467
+ assert_eq ! ( provider . get ( ) . 0 , 1 ) ; // newly assigned
468
468
id_producer. push ( llq:: Node :: new ( AudioNodeId ( 0 ) ) ) ;
469
- assert_eq ! ( issuer . issue ( ) . 0 , 0 ) ; // reused
470
- assert_eq ! ( issuer . issue ( ) . 0 , 2 ) ; // newly assigned
469
+ assert_eq ! ( provider . get ( ) . 0 , 0 ) ; // reused
470
+ assert_eq ! ( provider . get ( ) . 0 , 2 ) ; // newly assigned
471
471
}
472
472
}
0 commit comments