зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1746352 - Update audioipc to 776ef93a. r=cubeb-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D133995
This commit is contained in:
Родитель
8f586038da
Коммит
96e9bde4a3
|
@ -35,7 +35,7 @@ rev = "dea28d0c7d9952bbf430701ee244f6a4349c98f1"
|
||||||
[source."https://github.com/mozilla/audioipc-2"]
|
[source."https://github.com/mozilla/audioipc-2"]
|
||||||
git = "https://github.com/mozilla/audioipc-2"
|
git = "https://github.com/mozilla/audioipc-2"
|
||||||
replace-with = "vendored-sources"
|
replace-with = "vendored-sources"
|
||||||
rev = "470320364f59672c0e1ee60240f2cd15f0e5b52f"
|
rev = "776ef93a9fdb20ac1ef6b7907bdd0493480388ee"
|
||||||
|
|
||||||
[source."https://github.com/mozilla/application-services"]
|
[source."https://github.com/mozilla/application-services"]
|
||||||
git = "https://github.com/mozilla/application-services"
|
git = "https://github.com/mozilla/application-services"
|
||||||
|
@ -61,11 +61,6 @@ git = "https://github.com/kinetiknz/audioipc-2"
|
||||||
replace-with = "vendored-sources"
|
replace-with = "vendored-sources"
|
||||||
rev = "abd4a0132ea65057b554221c8f112a9bedd33a92"
|
rev = "abd4a0132ea65057b554221c8f112a9bedd33a92"
|
||||||
|
|
||||||
[source."https://github.com/kinetiknz/ashmem-rs"]
|
|
||||||
git = "https://github.com/kinetiknz/ashmem-rs"
|
|
||||||
replace-with = "vendored-sources"
|
|
||||||
rev = "e47f470a54193532d60057ec54f864e06aeaff36"
|
|
||||||
|
|
||||||
[source."https://github.com/jfkthame/mapped_hyph.git"]
|
[source."https://github.com/jfkthame/mapped_hyph.git"]
|
||||||
git = "https://github.com/jfkthame/mapped_hyph.git"
|
git = "https://github.com/jfkthame/mapped_hyph.git"
|
||||||
replace-with = "vendored-sources"
|
replace-with = "vendored-sources"
|
||||||
|
|
|
@ -115,15 +115,6 @@ dependencies = [
|
||||||
"libloading 0.7.2",
|
"libloading 0.7.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ashmem"
|
|
||||||
version = "0.1.0"
|
|
||||||
source = "git+https://github.com/kinetiknz/ashmem-rs?rev=e47f470a54193532d60057ec54f864e06aeaff36#e47f470a54193532d60057ec54f864e06aeaff36"
|
|
||||||
dependencies = [
|
|
||||||
"ioctl-sys",
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ashmem"
|
name = "ashmem"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
|
@ -200,9 +191,9 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "audioipc"
|
name = "audioipc"
|
||||||
version = "0.2.5"
|
version = "0.2.5"
|
||||||
source = "git+https://github.com/mozilla/audioipc-2?rev=470320364f59672c0e1ee60240f2cd15f0e5b52f#470320364f59672c0e1ee60240f2cd15f0e5b52f"
|
source = "git+https://github.com/mozilla/audioipc-2?rev=776ef93a9fdb20ac1ef6b7907bdd0493480388ee#776ef93a9fdb20ac1ef6b7907bdd0493480388ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ashmem 0.1.0",
|
"ashmem",
|
||||||
"audio_thread_priority",
|
"audio_thread_priority",
|
||||||
"bincode",
|
"bincode",
|
||||||
"bytes 0.4.12",
|
"bytes 0.4.12",
|
||||||
|
@ -229,12 +220,11 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "audioipc-client"
|
name = "audioipc-client"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
source = "git+https://github.com/mozilla/audioipc-2?rev=470320364f59672c0e1ee60240f2cd15f0e5b52f#470320364f59672c0e1ee60240f2cd15f0e5b52f"
|
source = "git+https://github.com/mozilla/audioipc-2?rev=776ef93a9fdb20ac1ef6b7907bdd0493480388ee#776ef93a9fdb20ac1ef6b7907bdd0493480388ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"audio_thread_priority",
|
"audio_thread_priority",
|
||||||
"audioipc",
|
"audioipc",
|
||||||
"cubeb-backend",
|
"cubeb-backend",
|
||||||
"fallible_collections",
|
|
||||||
"futures 0.1.31",
|
"futures 0.1.31",
|
||||||
"futures-cpupool",
|
"futures-cpupool",
|
||||||
"log",
|
"log",
|
||||||
|
@ -244,7 +234,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "audioipc-server"
|
name = "audioipc-server"
|
||||||
version = "0.2.3"
|
version = "0.2.3"
|
||||||
source = "git+https://github.com/mozilla/audioipc-2?rev=470320364f59672c0e1ee60240f2cd15f0e5b52f#470320364f59672c0e1ee60240f2cd15f0e5b52f"
|
source = "git+https://github.com/mozilla/audioipc-2?rev=776ef93a9fdb20ac1ef6b7907bdd0493480388ee#776ef93a9fdb20ac1ef6b7907bdd0493480388ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"audio_thread_priority",
|
"audio_thread_priority",
|
||||||
"audioipc",
|
"audioipc",
|
||||||
|
@ -262,7 +252,7 @@ name = "audioipc2"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
source = "git+https://github.com/kinetiknz/audioipc-2?rev=abd4a0132ea65057b554221c8f112a9bedd33a92#abd4a0132ea65057b554221c8f112a9bedd33a92"
|
source = "git+https://github.com/kinetiknz/audioipc-2?rev=abd4a0132ea65057b554221c8f112a9bedd33a92#abd4a0132ea65057b554221c8f112a9bedd33a92"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ashmem 0.1.1",
|
"ashmem",
|
||||||
"audio_thread_priority",
|
"audio_thread_priority",
|
||||||
"bincode",
|
"bincode",
|
||||||
"bytes 0.4.12",
|
"bytes 0.4.12",
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
{"files":{"Cargo.toml":"90a69817003711b9f60ce9c907c8bd35b52aafafd074aecf4e66b1fa6e1c716f","src/lib.rs":"0024c010b7618e4e25bb6ea3295f229a0e4bf2ecd7144c764de3f175ad839ce5"},"package":null}
|
|
|
@ -1,10 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "ashmem"
|
|
||||||
version = "0.1.0"
|
|
||||||
authors = ["Matthew Gregan <kinetik@flim.org>"]
|
|
||||||
edition = "2018"
|
|
||||||
license = "ISC"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
libc = "0.2"
|
|
||||||
ioctl-sys = "0.7"
|
|
|
@ -1,160 +0,0 @@
|
||||||
#![cfg(target_os = "android")]
|
|
||||||
//! Provides a wrapper around Android's ASharedMemory API.
|
|
||||||
//!
|
|
||||||
//! ashmem has existed in Android as a non-public API for some time.
|
|
||||||
//! Originally accessed via ioctl, it was later available via libcutils as ashmem_create_region etc.
|
|
||||||
//! ASharedMemory is the new public API, but it isn't available until API 26 (Android 8).
|
|
||||||
//! Builds targeting Android 10 (API 29) are no longer permitted to access ashmem via the ioctl interface.
|
|
||||||
//! This makes life for a portable program difficult - you can't reliably use the old or new interface during this transition period.
|
|
||||||
//! We try to dynamically load the new API first, then fall back to the ioctl interface.
|
|
||||||
//!
|
|
||||||
//! References:
|
|
||||||
//! - [ASharedMemory documentation](https://developer.android.com/ndk/reference/group/memory)
|
|
||||||
//! - [Linux ashmem.h definitions](https://elixir.bootlin.com/linux/v5.11.8/source/drivers/staging/android/uapi/ashmem.h)
|
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate ioctl_sys;
|
|
||||||
|
|
||||||
const __ASHMEMIOC: u32 = 0x77;
|
|
||||||
|
|
||||||
static mut LIBANDROID_ASHAREDMEMORY_CREATE: Option<
|
|
||||||
extern "C" fn(*const libc::c_char, libc::size_t) -> libc::c_int,
|
|
||||||
> = None;
|
|
||||||
static mut LIBANDROID_ASHAREDMEMORY_GETSIZE: Option<extern "C" fn(libc::c_int) -> libc::size_t> =
|
|
||||||
None;
|
|
||||||
static mut LIBANDROID_ASHAREDMEMORY_SETPROT: Option<
|
|
||||||
extern "C" fn(libc::c_int, libc::c_int) -> libc::c_int,
|
|
||||||
> = None;
|
|
||||||
|
|
||||||
unsafe fn maybe_init() {
|
|
||||||
const LIBANDROID_NAME: *const libc::c_char = "libandroid\0".as_ptr() as *const libc::c_char;
|
|
||||||
const LIBANDROID_ASHAREDMEMORY_CREATE_NAME: *const libc::c_char =
|
|
||||||
"ASharedMemory_create\0".as_ptr() as _;
|
|
||||||
const LIBANDROID_ASHAREDMEMORY_GETSIZE_NAME: *const libc::c_char =
|
|
||||||
"ASharedMemory_getSize\0".as_ptr() as _;
|
|
||||||
const LIBANDROID_ASHAREDMEMORY_SETPROT_NAME: *const libc::c_char =
|
|
||||||
"ASharedMemory_setProt\0".as_ptr() as _;
|
|
||||||
static ONCE: std::sync::Once = std::sync::Once::new();
|
|
||||||
ONCE.call_once(|| {
|
|
||||||
// Leak the handle, there's no safe time to close it.
|
|
||||||
let handle = libc::dlopen(LIBANDROID_NAME, libc::RTLD_LAZY | libc::RTLD_LOCAL);
|
|
||||||
if handle.is_null() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Transmute guarantee for `fn -> Option<fn>`: https://doc.rust-lang.org/std/option/#representation
|
|
||||||
LIBANDROID_ASHAREDMEMORY_CREATE =
|
|
||||||
std::mem::transmute(libc::dlsym(handle, LIBANDROID_ASHAREDMEMORY_CREATE_NAME));
|
|
||||||
LIBANDROID_ASHAREDMEMORY_GETSIZE =
|
|
||||||
std::mem::transmute(libc::dlsym(handle, LIBANDROID_ASHAREDMEMORY_GETSIZE_NAME));
|
|
||||||
LIBANDROID_ASHAREDMEMORY_SETPROT =
|
|
||||||
std::mem::transmute(libc::dlsym(handle, LIBANDROID_ASHAREDMEMORY_SETPROT_NAME));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See [ASharedMemory_create NDK documentation](https://developer.android.com/ndk/reference/group/memory#asharedmemory_create)
|
|
||||||
///
|
|
||||||
/// # Safety
|
|
||||||
///
|
|
||||||
/// Directly calls C or kernel APIs.
|
|
||||||
#[allow(non_snake_case)]
|
|
||||||
pub unsafe fn ASharedMemory_create(name: *const libc::c_char, size: libc::size_t) -> libc::c_int {
|
|
||||||
const ASHMEM_NAME_DEF: *const libc::c_char = "/dev/ashmem".as_ptr() as _;
|
|
||||||
const ASHMEM_NAME_LEN: usize = 256;
|
|
||||||
const ASHMEM_SET_NAME: libc::c_int = iow!(
|
|
||||||
__ASHMEMIOC,
|
|
||||||
1,
|
|
||||||
std::mem::size_of::<[libc::c_char; ASHMEM_NAME_LEN]>()
|
|
||||||
) as _;
|
|
||||||
const ASHMEM_SET_SIZE: libc::c_int =
|
|
||||||
iow!(__ASHMEMIOC, 3, std::mem::size_of::<libc::size_t>()) as _;
|
|
||||||
|
|
||||||
maybe_init();
|
|
||||||
if let Some(fun) = LIBANDROID_ASHAREDMEMORY_CREATE {
|
|
||||||
return fun(name, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
let fd = libc::open(ASHMEM_NAME_DEF, libc::O_RDWR, 0o600);
|
|
||||||
if fd < 0 {
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
if !name.is_null() {
|
|
||||||
// NOTE: libcutils uses a local stack copy of `name`.
|
|
||||||
let r = libc::ioctl(fd, ASHMEM_SET_NAME, name);
|
|
||||||
if r != 0 {
|
|
||||||
libc::close(fd);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let r = libc::ioctl(fd, ASHMEM_SET_SIZE, size);
|
|
||||||
if r != 0 {
|
|
||||||
libc::close(fd);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
fd
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See [ASharedMemory_getSize NDK documentation](https://developer.android.com/ndk/reference/group/memory#asharedmemory_getsize)
|
|
||||||
///
|
|
||||||
/// # Safety
|
|
||||||
///
|
|
||||||
/// Directly calls C or kernel APIs.
|
|
||||||
#[allow(non_snake_case)]
|
|
||||||
pub unsafe fn ASharedMemory_getSize(fd: libc::c_int) -> libc::size_t {
|
|
||||||
const ASHMEM_GET_SIZE: libc::c_int = io!(__ASHMEMIOC, 4) as _;
|
|
||||||
|
|
||||||
maybe_init();
|
|
||||||
if let Some(fun) = LIBANDROID_ASHAREDMEMORY_GETSIZE {
|
|
||||||
return fun(fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
libc::ioctl(fd, ASHMEM_GET_SIZE) as libc::size_t
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See [ASharedMemory_setProt NDK documentation](https://developer.android.com/ndk/reference/group/memory#asharedmemory_setprot)
|
|
||||||
///
|
|
||||||
/// # Safety
|
|
||||||
///
|
|
||||||
/// Directly calls C or kernel APIs.
|
|
||||||
#[allow(non_snake_case)]
|
|
||||||
pub unsafe fn ASharedMemory_setProt(fd: libc::c_int, prot: libc::c_int) -> libc::c_int {
|
|
||||||
const ASHMEM_SET_PROT_MASK: libc::c_int =
|
|
||||||
iow!(__ASHMEMIOC, 5, std::mem::size_of::<libc::c_ulong>()) as _;
|
|
||||||
|
|
||||||
maybe_init();
|
|
||||||
if let Some(fun) = LIBANDROID_ASHAREDMEMORY_SETPROT {
|
|
||||||
return fun(fd, prot);
|
|
||||||
}
|
|
||||||
|
|
||||||
let r = libc::ioctl(fd, ASHMEM_SET_PROT_MASK, prot);
|
|
||||||
if r != 0 {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
r
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
#[test]
|
|
||||||
fn basic() {
|
|
||||||
unsafe {
|
|
||||||
let name = std::ffi::CString::new("/test-ashmem").unwrap();
|
|
||||||
let fd = super::ASharedMemory_create(name.as_ptr(), 128);
|
|
||||||
assert!(fd >= 0);
|
|
||||||
assert_eq!(super::ASharedMemory_getSize(fd), 128);
|
|
||||||
assert_eq!(super::ASharedMemory_setProt(fd, 0), 0);
|
|
||||||
libc::close(fd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn anonymous() {
|
|
||||||
unsafe {
|
|
||||||
let fd = super::ASharedMemory_create(std::ptr::null(), 128);
|
|
||||||
assert!(fd >= 0);
|
|
||||||
libc::close(fd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +1 @@
|
||||||
{"files":{"Cargo.toml":"67c604fd4e26eca79328eff5c235e6df79b3e4bdcd59609cf15ae6ffa7221b8b","cbindgen.toml":"bd89c5a9f52395b1c703ff04d1c0019dc3c92b691d571ae503c4b85753a44a39","src/context.rs":"89e2929aa2ba4bddcec6dd4a4511f528c681b7717adbaa7b7df4378c8e3c4d1c","src/lib.rs":"7016a5de8770d3269e62dd7ad096fdd00cf821febf916bbc3163225cf6a53002","src/send_recv.rs":"450bdb1d8a346634c0237f2081b424d11e2c19ad81670009303f8a03b3bfb196","src/stream.rs":"3b4937214a40fd41f817596af0c315100d8922a642fe99b33ada94c3e15a8fe5"},"package":null}
|
{"files":{"Cargo.toml":"4020e8c4119327dac49b47391c902eb69bb927c9e7d05f5882ad9e84cff4ec5e","cbindgen.toml":"bd89c5a9f52395b1c703ff04d1c0019dc3c92b691d571ae503c4b85753a44a39","src/context.rs":"89e2929aa2ba4bddcec6dd4a4511f528c681b7717adbaa7b7df4378c8e3c4d1c","src/lib.rs":"7016a5de8770d3269e62dd7ad096fdd00cf821febf916bbc3163225cf6a53002","src/send_recv.rs":"450bdb1d8a346634c0237f2081b424d11e2c19ad81670009303f8a03b3bfb196","src/stream.rs":"f493ddc3ae950fc18fe42249b13194bc0a80bd0ce88bc8c7d3295f9ee10a932e"},"package":null}
|
|
@ -17,4 +17,3 @@ futures = { version="0.1.18", default-features=false, features=["use_std"] }
|
||||||
futures-cpupool = { version="0.1.8", default-features=false }
|
futures-cpupool = { version="0.1.8", default-features=false }
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
fallible_collections = "0.4"
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ use audioipc::{
|
||||||
messages::{self, CallbackReq, CallbackResp, ClientMessage, ServerMessage},
|
messages::{self, CallbackReq, CallbackResp, ClientMessage, ServerMessage},
|
||||||
};
|
};
|
||||||
use cubeb_backend::{ffi, DeviceRef, Error, Result, Stream, StreamOps};
|
use cubeb_backend::{ffi, DeviceRef, Error, Result, Stream, StreamOps};
|
||||||
use fallible_collections::FallibleVec;
|
|
||||||
use futures::Future;
|
use futures::Future;
|
||||||
use futures_cpupool::{CpuFuture, CpuPool};
|
use futures_cpupool::{CpuFuture, CpuPool};
|
||||||
use std::ffi::{CStr, CString};
|
use std::ffi::{CStr, CString};
|
||||||
|
@ -212,8 +211,9 @@ impl rpc::Server for CallbackServer {
|
||||||
};
|
};
|
||||||
|
|
||||||
self.duplex_input = if let StreamDirection::Duplex = self.dir {
|
self.duplex_input = if let StreamDirection::Duplex = self.dir {
|
||||||
match Vec::try_with_capacity(shm_area_size) {
|
let mut duplex_input = Vec::new();
|
||||||
Ok(duplex_input) => Some(duplex_input),
|
match duplex_input.try_reserve_exact(shm_area_size) {
|
||||||
|
Ok(()) => Some(duplex_input),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
warn!(
|
warn!(
|
||||||
"duplex_input allocation failed (size={}, err={:?})",
|
"duplex_input allocation failed (size={}, err={:?})",
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"files":{"Cargo.toml":"0b9a3ce0f238c34e8d12eb867010ed5948f138d9a9b8a1be6812ac433335eea5","build.rs":"3f061cf9a989f63a71c693a543d26f7003e8b643c39c23ea555110252a2c39d2","src/async_msg.rs":"27c5c8215bcbe1364947065ac78198bcd4be7fbae0f5e49ea776cb454c5a6d2c","src/cmsg.rs":"97d8fe99ef94f75db9ed26cb4cf6faf9fbbc913cfa4152a8774ff4e76aead620","src/cmsghdr.c":"d7344b3dc15cdce410c68669b848bb81f7fe36362cd3699668cb613fa05180f8","src/codec.rs":"2e0a05968e07617adc6be0cbf04962c952c621e118f0db308eeeed5ccea4dfce","src/core.rs":"721de353d3b0b5126bf5b25cfb1f99244702309ce9f9f24cc2ce3c5858228794","src/errors.rs":"67a4a994d0724397657581cde153bdfc05ce86e7efc467f23fafc8f64df80fa4","src/framing.rs":"45122f0bc44458d8e111466437e784f0d17035309cb5f03d45a5861082168ea1","src/lib.rs":"717151468773630600530a16d6c89ba559e321551e95e0f3d83721474ec82ae6","src/messages.rs":"6d59588add4dc4eb324a630980fa10acd64ad5e1feda74a9ec10b0f7d10798f1","src/messagestream_unix.rs":"786ea7d2d2993c21987d34c0617abd78dbaa57079de68ea3ebbf5611a052f60b","src/messagestream_win.rs":"f5b2a0e22f56a14af24a76a4c13a1d6b066fbea347132a5413bee0bd2b757753","src/msg.rs":"f5353e942f7818742190541e568685d6b4d6200b55bfc60e46ee3db05f802436","src/rpc/client/mod.rs":"04e80b689548e7888b34441a7224dfa8cf557b8b4164754daee95a95b76f9aee","src/rpc/client/proxy.rs":"8d9c9b38ecec4ab5ee3b6e4c2d7aea9dbb4f7cf5c25d39a5db0c76aa41008497","src/rpc/driver.rs":"dea4efc844485e98c21f766772422e3a5c9ac153ade32c0ff51287516a05690b","src/rpc/mod.rs":"3b14af0be2b4c7b30a0dab9cca353e092652a16e29002f5aeba24dca45e33d1e","src/rpc/server.rs":"7caf0b2d659783b4c5c9dd9efe4cb9a2e7d5955c0dfda3d2e79581116bb9334b","src/shm.rs":"94dee9454acfb4541b7757fd6763b8ecfe1961bb0da780caf463dc6509ba1d98","src/tokio_named_pipes.rs":"c0d74ab6330ebdec53db12f0f532b60897c37e70345c368f10165d9b31409643","src/tokio_uds_stream.rs":"3251b91e4129f174a588648ec43575b35e139b67d4b8833fe324e82e67d5c3da"},"package":null}
|
{"files":{"Cargo.toml":"a250ee3074a7b740ad0c3e814dbbbd4d9ac21ecf5b7581c2da1d15ebc0a432d2","build.rs":"3f061cf9a989f63a71c693a543d26f7003e8b643c39c23ea555110252a2c39d2","src/async_msg.rs":"27c5c8215bcbe1364947065ac78198bcd4be7fbae0f5e49ea776cb454c5a6d2c","src/cmsg.rs":"97d8fe99ef94f75db9ed26cb4cf6faf9fbbc913cfa4152a8774ff4e76aead620","src/cmsghdr.c":"d7344b3dc15cdce410c68669b848bb81f7fe36362cd3699668cb613fa05180f8","src/codec.rs":"2e0a05968e07617adc6be0cbf04962c952c621e118f0db308eeeed5ccea4dfce","src/core.rs":"721de353d3b0b5126bf5b25cfb1f99244702309ce9f9f24cc2ce3c5858228794","src/errors.rs":"67a4a994d0724397657581cde153bdfc05ce86e7efc467f23fafc8f64df80fa4","src/framing.rs":"45122f0bc44458d8e111466437e784f0d17035309cb5f03d45a5861082168ea1","src/lib.rs":"717151468773630600530a16d6c89ba559e321551e95e0f3d83721474ec82ae6","src/messages.rs":"45ca1c8aee63b991d0160f50f06d280527e7bc28972c28fa35f4f649836cadb0","src/messagestream_unix.rs":"786ea7d2d2993c21987d34c0617abd78dbaa57079de68ea3ebbf5611a052f60b","src/messagestream_win.rs":"f5b2a0e22f56a14af24a76a4c13a1d6b066fbea347132a5413bee0bd2b757753","src/msg.rs":"f5353e942f7818742190541e568685d6b4d6200b55bfc60e46ee3db05f802436","src/rpc/client/mod.rs":"04e80b689548e7888b34441a7224dfa8cf557b8b4164754daee95a95b76f9aee","src/rpc/client/proxy.rs":"8d9c9b38ecec4ab5ee3b6e4c2d7aea9dbb4f7cf5c25d39a5db0c76aa41008497","src/rpc/driver.rs":"dea4efc844485e98c21f766772422e3a5c9ac153ade32c0ff51287516a05690b","src/rpc/mod.rs":"3b14af0be2b4c7b30a0dab9cca353e092652a16e29002f5aeba24dca45e33d1e","src/rpc/server.rs":"7caf0b2d659783b4c5c9dd9efe4cb9a2e7d5955c0dfda3d2e79581116bb9334b","src/shm.rs":"94dee9454acfb4541b7757fd6763b8ecfe1961bb0da780caf463dc6509ba1d98","src/tokio_named_pipes.rs":"c0d74ab6330ebdec53db12f0f532b60897c37e70345c368f10165d9b31409643","src/tokio_uds_stream.rs":"3251b91e4129f174a588648ec43575b35e139b67d4b8833fe324e82e67d5c3da"},"package":null}
|
|
@ -36,7 +36,7 @@ mio-named-pipes = { git = "https://github.com/kinetiknz/mio-named-pipes", rev =
|
||||||
winapi = { version = "0.3.6", features = ["combaseapi", "memoryapi", "objbase"] }
|
winapi = { version = "0.3.6", features = ["combaseapi", "memoryapi", "objbase"] }
|
||||||
|
|
||||||
[target.'cfg(target_os = "android")'.dependencies]
|
[target.'cfg(target_os = "android")'.dependencies]
|
||||||
ashmem = { git = "https://github.com/kinetiknz/ashmem-rs", rev = "e47f470a54193532d60057ec54f864e06aeaff36" }
|
ashmem = "0.1"
|
||||||
|
|
||||||
[dependencies.error-chain]
|
[dependencies.error-chain]
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
|
|
|
@ -312,6 +312,8 @@ pub enum SerializableHandle {
|
||||||
Empty,
|
Empty,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PlatformHandle is non-Send and containers a pointer (HANDLE) on Windows.
|
||||||
|
#[allow(clippy::non_send_fields_in_send_ty)]
|
||||||
unsafe impl Send for SerializableHandle {}
|
unsafe impl Send for SerializableHandle {}
|
||||||
|
|
||||||
impl SerializableHandle {
|
impl SerializableHandle {
|
||||||
|
|
|
@ -75,8 +75,8 @@ webext_storage_bridge = { path = "../../../components/extensions/storage/webext_
|
||||||
|
|
||||||
# https://github.com/mozilla/audioipc-2/commits/master
|
# https://github.com/mozilla/audioipc-2/commits/master
|
||||||
[target.'cfg(not(target_os = "macos"))'.dependencies]
|
[target.'cfg(not(target_os = "macos"))'.dependencies]
|
||||||
audioipc-client = { git = "https://github.com/mozilla/audioipc-2", rev = "470320364f59672c0e1ee60240f2cd15f0e5b52f", optional = true }
|
audioipc-client = { git = "https://github.com/mozilla/audioipc-2", rev = "776ef93a9fdb20ac1ef6b7907bdd0493480388ee", optional = true }
|
||||||
audioipc-server = { git = "https://github.com/mozilla/audioipc-2", rev = "470320364f59672c0e1ee60240f2cd15f0e5b52f", optional = true }
|
audioipc-server = { git = "https://github.com/mozilla/audioipc-2", rev = "776ef93a9fdb20ac1ef6b7907bdd0493480388ee", optional = true }
|
||||||
|
|
||||||
# https://github.com/kinetiknz/audioipc-2/commits/macos
|
# https://github.com/kinetiknz/audioipc-2/commits/macos
|
||||||
[target.'cfg(target_os = "macos")'.dependencies]
|
[target.'cfg(target_os = "macos")'.dependencies]
|
||||||
|
|
Загрузка…
Ссылка в новой задаче