Size: a a a

Rust — русскоговорящее сообществo

2020 August 27

A

Alex in Rust — русскоговорящее сообществo
sel 🍞
async-std-premium. Now $29.99!
без регистрации и смс
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Эрик
Если сделать rg "unsafe" по репе, то находит 434. 429 без имён модулей.
Минус сколько-то ансейфов в комментариях. Но в общем, где-то четыре сотни.
А, тьфу. Поиск на гитхабе количество файлов показывает, а не количество матчей.
источник

KH

Khachatur Harutyunya... in Rust — русскоговорящее сообществo
Кто-нибудь сталкивался с memory leaks в растовском клиенте Aerospike - a? A именно при вызове batch_get  ?
источник

KH

Khachatur Harutyunya... in Rust — русскоговорящее сообществo
мои подозрения на
pub fn execute<F>(&self, job: F)

где есть такой код

let task = unsafe {
   
// Safe because we will ensure the task finishes executing before
   // 'scope via joining before the resolution of 'scope.
   mem::transmute::<Box<Task + Send + 'scope>,
                    Box<Task + Send + 'static>>(Box::new(job))
}
;

Объясните, пожалуйста, мне не профессионалу, может ли тут быть утечка ?
источник

t

this is not mrklf in Rust — русскоговорящее сообществo
Khachatur Harutyunyan
мои подозрения на
pub fn execute<F>(&self, job: F)

где есть такой код

let task = unsafe {
   
// Safe because we will ensure the task finishes executing before
   // 'scope via joining before the resolution of 'scope.
   mem::transmute::<Box<Task + Send + 'scope>,
                    Box<Task + Send + 'static>>(Box::new(job))
}
;

Объясните, пожалуйста, мне не профессионалу, может ли тут быть утечка ?
значение кастуется к статик лайфтайму
источник

KH

Khachatur Harutyunya... in Rust — русскоговорящее сообществo
this is not mrklf
значение кастуется к статик лайфтайму
ну это понятно, не означает ли это, что память не стирается при выходе из скопа ?
источник

t

this is not mrklf in Rust — русскоговорящее сообществo
Khachatur Harutyunyan
ну это понятно, не означает ли это, что память не стирается при выходе из скопа ?
будет жить до конца
источник

R

Roman in Rust — русскоговорящее сообществo
Вообще не связяно
источник

R

Roman in Rust — русскоговорящее сообществo
Box<Trait + 'static> значит только что его можно хранить до конца программы
источник

R

Roman in Rust — русскоговорящее сообществo
Потому что актуальный тип T: 'static, то есть не заимствует данные меньше чем на 'static
источник

R

Roman in Rust — русскоговорящее сообществo
@imexactlynotahuman просто от балды сказал
источник

KH

Khachatur Harutyunya... in Rust — русскоговорящее сообществo
Roman
Box<Trait + 'static> значит только что его можно хранить до конца программы
так память уходит или нет ? На миллион запросов у меня теряется гигабайты памяти
источник

R

Roman in Rust — русскоговорящее сообществo
Ты потом куда этот таск кладешь?
источник

R

Roman in Rust — русскоговорящее сообществo
Вон у тебя в сниппете let task = . Вот там этот бокс лежит. Вот и скажи, ты его потом не сладируешь куда-нибудь?
источник

R

Roman in Rust — русскоговорящее сообществo
Если бокс дропается, то память освободит
источник

KH

Khachatur Harutyunya... in Rust — русскоговорящее сообществo
библиотека кладет, я сам просто вызываю batch_get, внутри которого вот это все. И нет ручного дропа
источник

R

Roman in Rust — русскоговорящее сообществo
И вообще зачем эти танцы с трансмутами? Попахивает UB немного
источник

R

Roman in Rust — русскоговорящее сообществo
Куда кладет? Куда девается таск?
источник

R

Roman in Rust — русскоговорящее сообществo
У тебя ж код перед глазами
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Это код какой-то библиотеки
источник