| Crates.io | unlock |
| lib.rs | unlock |
| version | 0.0.13 |
| created_at | 2024-02-02 09:28:23.958071+00 |
| updated_at | 2024-02-12 10:41:49.792059+00 |
| description | Instrumented synchronization primitives helping you to unlock performance issues |
| homepage | https://github.com/udoprog/unlock |
| repository | https://github.com/udoprog/unlock |
| max_upload_size | |
| id | 1124163 |
| size | 56,524 |
Helpers for tracing and troubleshooting multithreaded code.

Import RwLock and Mutex from this crate instead of parking_lot directly.
After this, you can instrument a section of code like this:
let condition = true;
if condition {
unlock::capture();
}
/* do some work */
if condition {
let events = unlock::drain();
unlock::html::write("trace.html", &events)?;
println!("Wrote trace.html");
}
This library provides two facade types:
These integrate with a high performance concurrent tracing system to capture events. While this will have some overhead, we aim to make it as small as possible.
Once a workload has been instrumented, the drain function can be called to
collect these events, which then can be formatted using either built-in
methods such as html::write, or serialized as you please using serde
for processing later.
trace - Enable real tracing support. If this feature is disabled, this
library will be replaced by a stub that can easily be optimized away.parking_lot (default) - Enable support for parking_lot types. If this
feature is enabled and trace is disabled, this will re-export
parking_lot primitives.serde - Enable serialization for events.