mirror of
https://github.com/servo/servo.git
synced 2025-06-10 09:33:13 +00:00
Stop using time@0.1
in Servo (#33394)
This removes the last few uses of `time@0.1` in Servo. There are still dependencies from `style` and `webrender`, but they will be removed soon as well. The uses of this version of `time` are replaced with `std::time` types and `time@0.3` when negative `Duration` is necessary. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
095590e224
commit
bc8d8b62c3
18 changed files with 88 additions and 103 deletions
|
@ -14,6 +14,7 @@ use std::collections::HashMap;
|
|||
use std::net::TcpStream;
|
||||
use std::time::{Duration, SystemTime};
|
||||
|
||||
use base::cross_process_instant::CrossProcessInstant;
|
||||
use base::id::{BrowsingContextId, PipelineId};
|
||||
use bitflags::bitflags;
|
||||
use http::{HeaderMap, Method};
|
||||
|
@ -134,16 +135,16 @@ pub struct NodeInfo {
|
|||
|
||||
pub struct StartedTimelineMarker {
|
||||
name: String,
|
||||
start_time: PreciseTime,
|
||||
start_time: CrossProcessInstant,
|
||||
start_stack: Option<Vec<()>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct TimelineMarker {
|
||||
pub name: String,
|
||||
pub start_time: PreciseTime,
|
||||
pub start_time: CrossProcessInstant,
|
||||
pub start_stack: Option<Vec<()>>,
|
||||
pub end_time: PreciseTime,
|
||||
pub end_time: CrossProcessInstant,
|
||||
pub end_stack: Option<Vec<()>>,
|
||||
}
|
||||
|
||||
|
@ -364,7 +365,7 @@ impl TimelineMarker {
|
|||
pub fn start(name: String) -> StartedTimelineMarker {
|
||||
StartedTimelineMarker {
|
||||
name,
|
||||
start_time: PreciseTime::now(),
|
||||
start_time: CrossProcessInstant::now(),
|
||||
start_stack: None,
|
||||
}
|
||||
}
|
||||
|
@ -376,31 +377,11 @@ impl StartedTimelineMarker {
|
|||
name: self.name,
|
||||
start_time: self.start_time,
|
||||
start_stack: self.start_stack,
|
||||
end_time: PreciseTime::now(),
|
||||
end_time: CrossProcessInstant::now(),
|
||||
end_stack: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A replacement for `time::PreciseTime` that isn't opaque, so we can serialize it.
|
||||
///
|
||||
/// The reason why this doesn't go upstream is that `time` is slated to be part of Rust's standard
|
||||
/// library, which definitely can't have any dependencies on `serde`. But `serde` can't implement
|
||||
/// `Deserialize` and `Serialize` itself, because `time::PreciseTime` is opaque! A Catch-22. So I'm
|
||||
/// duplicating the definition here.
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
|
||||
pub struct PreciseTime(u64);
|
||||
|
||||
impl PreciseTime {
|
||||
pub fn now() -> PreciseTime {
|
||||
PreciseTime(time::precise_time_ns())
|
||||
}
|
||||
|
||||
pub fn to(&self, later: PreciseTime) -> Duration {
|
||||
Duration::from_nanos(later.0 - self.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, MallocSizeOf, PartialEq, Serialize)]
|
||||
pub struct WorkerId(pub Uuid);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue