use fetch_add
This commit is contained in:
parent
a50e195dca
commit
a52a0fa399
@ -125,7 +125,7 @@ impl Iterator for Source {
|
|||||||
self.current_node.add_filter();
|
self.current_node.add_filter();
|
||||||
self.current_node.begin = Some(get_sec());
|
self.current_node.begin = Some(get_sec());
|
||||||
|
|
||||||
self.index.store(i + 1, Ordering::SeqCst);
|
self.index.fetch_add(1, Ordering::SeqCst);
|
||||||
|
|
||||||
Some(self.current_node.clone())
|
Some(self.current_node.clone())
|
||||||
} else {
|
} else {
|
||||||
|
@ -95,8 +95,7 @@ impl CurrentProgram {
|
|||||||
*self.nodes.lock().unwrap() = json.program;
|
*self.nodes.lock().unwrap() = json.program;
|
||||||
|
|
||||||
self.get_current_clip();
|
self.get_current_clip();
|
||||||
let idx = self.index.load(Ordering::SeqCst);
|
self.index.fetch_add(1, Ordering::SeqCst);
|
||||||
self.index.store(idx + 1, Ordering::SeqCst);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
error!(
|
error!(
|
||||||
@ -222,12 +221,10 @@ impl CurrentProgram {
|
|||||||
|
|
||||||
if !self.playout_stat.list_init.load(Ordering::SeqCst) {
|
if !self.playout_stat.list_init.load(Ordering::SeqCst) {
|
||||||
let time_sec = self.get_current_time();
|
let time_sec = self.get_current_time();
|
||||||
let index = self.index.load(Ordering::SeqCst);
|
let index = self.index.fetch_add(1, Ordering::SeqCst);
|
||||||
|
|
||||||
// de-instance node to preserve original values in list
|
// de-instance node to preserve original values in list
|
||||||
let mut node_clone = self.nodes.lock().unwrap()[index].clone();
|
let mut node_clone = self.nodes.lock().unwrap()[index].clone();
|
||||||
let idx = self.index.load(Ordering::SeqCst);
|
|
||||||
self.index.store(idx + 1, Ordering::SeqCst);
|
|
||||||
|
|
||||||
node_clone.seek = time_sec - node_clone.begin.unwrap();
|
node_clone.seek = time_sec - node_clone.begin.unwrap();
|
||||||
self.current_node = handle_list_init(node_clone);
|
self.current_node = handle_list_init(node_clone);
|
||||||
@ -276,6 +273,7 @@ impl Iterator for CurrentProgram {
|
|||||||
if self.config.playlist.start_sec.unwrap() > current_time {
|
if self.config.playlist.start_sec.unwrap() > current_time {
|
||||||
current_time += self.config.playlist.length_sec.unwrap() + 1.0;
|
current_time += self.config.playlist.length_sec.unwrap() + 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut media = Media::new(0, String::new(), false);
|
let mut media = Media::new(0, String::new(), false);
|
||||||
media.begin = Some(current_time);
|
media.begin = Some(current_time);
|
||||||
media.duration = duration;
|
media.duration = duration;
|
||||||
@ -308,7 +306,7 @@ impl Iterator for CurrentProgram {
|
|||||||
&self.playout_stat,
|
&self.playout_stat,
|
||||||
);
|
);
|
||||||
self.last_next_ad();
|
self.last_next_ad();
|
||||||
self.index.store(index + 1, Ordering::SeqCst);
|
self.index.fetch_add(1, Ordering::SeqCst);
|
||||||
|
|
||||||
// update playlist should happen after current clip,
|
// update playlist should happen after current clip,
|
||||||
// to prevent unknown behaviors.
|
// to prevent unknown behaviors.
|
||||||
@ -342,7 +340,7 @@ impl Iterator for CurrentProgram {
|
|||||||
self.current_node.last_ad = last_ad;
|
self.current_node.last_ad = last_ad;
|
||||||
self.current_node.add_filter();
|
self.current_node.add_filter();
|
||||||
|
|
||||||
self.index.store(index + 1, Ordering::SeqCst);
|
self.index.fetch_add(1, Ordering::SeqCst);
|
||||||
|
|
||||||
return Some(self.current_node.clone());
|
return Some(self.current_node.clone());
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ pub fn json_rpc_server(
|
|||||||
info!("Move to last clip");
|
info!("Move to last clip");
|
||||||
let mut data_map = Map::new();
|
let mut data_map = Map::new();
|
||||||
let mut media = play.current_list.lock().unwrap()[index - 2].clone();
|
let mut media = play.current_list.lock().unwrap()[index - 2].clone();
|
||||||
play.index.store(index - 2, Ordering::SeqCst);
|
play.index.fetch_sub(2, Ordering::SeqCst);
|
||||||
media.add_probe();
|
media.add_probe();
|
||||||
|
|
||||||
let (delta, _) = get_delta(&media.begin.unwrap_or(0.0));
|
let (delta, _) = get_delta(&media.begin.unwrap_or(0.0));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user